-
常用方法
-
代码演示
-
BigDecimal类
-
- 构造方法
-
常用方法
-
- 舍入模式
-
代码演示
==========================================================================
- 在Java的整数类型里面,byte为8位,short为16位,int为32位,long为64位。正因为这些数值的二进制位数已经固定,所以它们能表示的数值大小就有一定的范围限制。因此,Java中提供BigInteger类来处理更大的数字。
- BigInteger(String val):创建一个具有参数所指定以字符串表示的数值的对象。
BigInteger add(BigInteger val):加法运算。
BigInteger subtract(BigInteger val):减法运算。
BigInteger multiply(BigInteger val) :乘法运算。
BigInteger divide(BigInteger val) :除法运算,可能会产生除零异常。
public BigInteger[] divideAndRemainder(BigInteger val):获取商值和余数组成的数组,初始元素是商值,最终元素是余数。
String toString():将BigInteger对象的数值转换成字符串。
double doubleValue():将BigInteger对象中的值以双精度数返回。
float floatValue():将BigInteger对象中的值以单精度数返回。
long longValue():将BigInteger对象中的值以长整数返回。
int intValue():将BigInteger对象中的值以整数返回。
import java.math.BigInteger;
public class Test {
public static void main(String[] args) {
BigInteger a = new BigInteger(“222222222222222222222222”);
BigInteger b = new BigInteger(“333333333333333333333333”);
System.out.println("add >>> " + a.add(b));
System.out.println("subtract >>> " + a.subtract(b));
System.out.println("multiply >>> " + a.multiply(b));
System.out.println("divide >>> " + a.divide(b));
System.out.println("divideAndRemainder[0] >>> " + a.divideAndRemainder(b)[0]);
System.out.println("divideAndRemainder[1] >>> " + a.divideAndRemainder(b)[1]);
}
}
==========================================================================
-
虽然Java的基本类型提供了float和double类型,但他们在执行浮点运算的时候,只是提供了一个较为精确的结果,不能用于要求精确度很高的环境中。
-
因此,Java提供了BigDecimal类来保证结果的精确度。
-
BigDecimal都是不可变的(immutable)的,在进行每一步运算时,都会产生一个新的对象,所以在做运算时千万要保存操作后的值。
-
使用BigDecimal的坏处是性能比double和float差,在处理庞大,复杂的运算时尤为明显,因根据实际需求决定使用哪种类型。
BigDecimal(int):创建一个具有参数所指定整数值的对象。
BigDecimal(double):创建一个具有参数所指定双精度值的对象(不建议使用会导致精度丢失)。
public static void main(String[] args) {
BigDecimal a = new BigDecimal(2);
BigDecimal b = new BigDecimal(2.3);
BigDecimal c = new BigDecimal(“2.3”);
System.out.println(a);
System.out.println(b);
System.out.println©;
}
BigDecimal(String):创建一个具有参数所指定以字符串表示的数值的对象。
写在最后
很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。
最后祝愿各位身体健康,顺利拿到心仪的offer!
由于文章的篇幅有限,所以这次的蚂蚁金服和京东面试题答案整理在了PDF文档里
实现它。
最后祝愿各位身体健康,顺利拿到心仪的offer!
由于文章的篇幅有限,所以这次的蚂蚁金服和京东面试题答案整理在了PDF文档里
[外链图片转存中…(img-TBlctcCJ-1714127559119)]
[外链图片转存中…(img-tiafR2H8-1714127559119)]
[外链图片转存中…(img-5er8cm7J-1714127559120)]