java的一些不常使用但自己觉得重要的类

写技术文章之前的话


这是自己第一次写csdn博客,在写具体的技术文章之前想先说点关于写博客的事情。


我想写博客的这个想法在脑海里存在已经很久了,但是一直没有动笔去写。我觉得一方面因为自己有完美主义倾向,觉得没“准备好”。但是怎么才算“准备好”呢?这个问题我自己没有答案。所以我自己得到一个结论,那就是不要等“准备好”啦。另一方面是因为没有自信,觉得写不出高质量的博客。这个问题我认为先开始写博客,如果质量不高,那就慢慢改进。不能因为这样不去写。因为不自信不去写有点“因噎废食”。


通过写博客,既可以让自己巩固知识,还可以把知识分享给别人。不亦乐乎!


下面进入正题,介绍java中不常见的几个类


BigInteger的使用


BigInteger并非一个常见的类,但有时却有需要用到它的地方。



概述

首先看官方文档描述,Immutable arbitrary-precision integers,即不可变的任意精度整数。它可以表示int和long表示不了的整数。

如何使用BigInteger

BigInteger里可以把代表任意精度的整数的字符串传入构造函数构建对象,这样就可以表示任意精度的整数,并且可以通过创建出来的对象进行加,减,乘,除运算。并且可以通过对象的divideAndRemainder()方法获得含有商和余数的数组。

代码如下所示:

package cn.lpw;


import java.math.BigInteger;
public class Demo_BigInteger {


	public static void main(String[] args) {
		BigInteger b1 = new BigInteger("100");
		BigInteger b2 = new BigInteger("3");
		
		System.out.println(b1);               //打印b1代表的整数的值
		System.out.println(b1.add(b2));       //打印b1与b2的和
		System.out.println(b1.subtract(b2));  //打印b1与b2的差
		System.out.println(b1.multiply(b2));  //打印b1与b2的积
		System.out.println(b1.divide(b2));    //打印b1与b2的商
		
		BigInteger[] arr = b1.divideAndRemainder(b2);  //获取b1除以b2的商与余数的数组
		
		for (int i = 0; i < arr.length; i++) {         //遍历数组
			System.out.println(arr[i]);
		}
	}


}

结果如下图所示



BigDecimal


概述


官方文档的描述:Immutable, arbitrary-precision signed decimal numbers,即不可变的任意精度有符号小数。计算机存储数据是以二进制的形式,是所以可能存在有些小数,不能准确表示,这样计算的时候就会出现因精度产生运算数据不准确。

如何使用BigDecimal


通过构造方法将小数的字符串形式传入,进行运算,不会丢失精度。或者通过静态方法valueOf()将double数传入进行运算。

代码如下所示:

package cn.lpw;

import java.math.BigDecimal;

public class Demo_BigDecimal {

	public static void main(String[] args) {
		System.out.println(3.0 - 2.1);
		
		BigDecimal b1 = new BigDecimal(3.0);
		BigDecimal b2 = new BigDecimal(2.1);
		System.out.println(b1.subtract(b2));
		
		BigDecimal b3 = new BigDecimal("3.0");
		BigDecimal b4 = new BigDecimal("2.1");
		System.out.println(b3.subtract(b4));
		
		BigDecimal b5 = BigDecimal.valueOf(3.0);
		BigDecimal b6 = BigDecimal.valueOf(2.1);
		System.out.println(b5.subtract(b6));
		
	}

}



结果如下图所示:











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值