黑马程序员技术交流社区
标题:
java中科学计算和精确计算
[打印本页]
作者:
29198102shihao
时间:
2013-7-7 09:51
标题:
java中科学计算和精确计算
1科学计算:有一点误差可以接受,用浮点类型
doublea=0.6;
doubleb=0.06;
print(a+b)
结果是:0.60600000001 不精确,因为计算机只有01数值,无法精确表示!!
2精确运算:用于数量大的货币运算操作等,可以用BigDecimal类:提供了加减乘除运算
可以实现精确运算!!传入数字的字符串形式就好!
BigDecimala=new BigDecimal(“0.1”);
BigDecimalb=new BigDecimal(“0.006”);
BigDecimalc=a.add(b); a+b
print(c.toString());
而且可以实现任意的精度运算小数点后面位数或者整数位也可以<无限长!!!无限制,实现任意精度小数
BigDecimalc=a.multiply(b); a*b
BigDecimalc=a.divide(b); a/b 会报错,因为无法整除,就会无限长,会出错!!应当告诉他保留的小数范围以及舍入模式:碰到一半怎么处理!!
BigDecimalc=a.divide(b,10,BigDecimal.ROUND_HALF_UP); a/b
保留小数点后10位,碰到一半怎么处理, 遇到0.5 向上舍入是成1,向下舍入是成0 ROUND_HALF_UP
作者:
黄玉昆
时间:
2013-7-7 10:06
说到浮点数的相关计算,你可以看看这个帖子:
谁偷了我的精度?浮点数浅谈
希望能让大家学到一点点知识
作者:
29198102shihao
时间:
2013-7-7 12:51
黄玉昆 发表于 2013-7-7 10:06
说到浮点数的相关计算,你可以看看这个帖子:谁偷了我的精度?浮点数浅谈
希望能让大家学到一点点知识
...
enen 好的 !多谢啦啊!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2