我是靠谱客的博主 独特鞋垫,最近开发中收集的这篇文章主要介绍JAVA BigInteger和BigDecimal类常用方式BigIntegerBigDecimal,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
BigInteger
BigInteger是用来计算超大的整型数据的。
这个类计算出的所有数据只会是整型
public static void main(String[] args) {
//两种创建方式
BigInteger ten = new BigInteger("10");
BigInteger two = new BigInteger("2");
BigInteger three = new BigInteger("3");
//只能创建某几个数
BigInteger one = BigInteger.TEN;
BigInteger res;
//加法
res = ten.add(two);
//res =10+2=12
//减法
res = ten.subtract(two);
//res = 10-2=8;
//乘法
res = ten.multiply(two);
//res = 10*2=20;
//除法
res = ten.divide(two);
// res = 10/2 =5 //小数向上取整
//求余
res = ten.mod(three);
// res = 10%3 =1
//最小值Min、最大值Max、就不演示了
//求次方
res = ten.pow(3);
//res = 10*10*10//10的三次方
}
BigDecimal
可以说是一个可以控制精确度的BigInteger
可以按照不同的方式去求精准度
使用不同的方式去求他的精度
BigDecimal small = new BigDecimal("1.1234567");
四舍五入方式
//small的精确到小数点5位
//ROUND_HALF_UP 这个参数代表以四舍五入的方式进行精确
res = small.setScale(5,BigDecimal.ROUND_HALF_UP);
//res = 1.12346
向下取精确度的方式(直接截断)
//ROUND_DOWN 向下取整、、直接截断第5位,不管后面是几
res = small.setScale(5,BigDecimal.ROUND_DOWN);
//res = 1.12345
向上取精确度的方式 ,,后面的一位只要有数就进位
//ROUND_UP 向上取整,比如精确到第3位,只要原来第三位后面有数,就默认进位
res = small.setScale(3,BigDecimal.ROUND_UP);
//res = 1.124
//不用进位
res = small.setScale(7,BigDecimal.ROUND_UP);
//res = 1.1234567
BIgDecimal的其他四则运算与BigIntegr一致
主要是除法
可以除尽的除法,运算没问题
BigDecimal ten = new BigDecimal("15");
BigDecimal two = new BigDecimal("10");
BigDecimal res = ten.divide(two);
//res = 1.5
如果遇见除不尽的,结果为无限小数一定要确定精确度
否则会报错
BigDecimal ten = new BigDecimal("10");
BigDecimal three = new BigDecimal("3");
//四舍五入保留3位小数
BigDecimal res = ten.divide(three,3,BigDecimal.ROUND_HALF_UP);
System.out.println(res);
另外需要注意的
double ten =10.123;
BigDecimal t = new BigDecimal(ten);
System.out.println(t);
结果不是10.123
而是。10.1229999999999993320898283855058252811431884765625
因为,double类型在java内存中存储的就是这样的,只是我们平时看不出来
,转换成BigDecimal时把他的原型转换了出来。
需要注意........想要原来的值可以先转换成String
double ten =10.123;
BigDecimal t = new BigDecimal(String.valueOf(ten));
System.out.println(t);
最后
以上就是独特鞋垫为你收集整理的JAVA BigInteger和BigDecimal类常用方式BigIntegerBigDecimal的全部内容,希望文章能够帮你解决JAVA BigInteger和BigDecimal类常用方式BigIntegerBigDecimal所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复