A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 29198102shihao 中级黑马   /  2013-7-7 09:51  /  1354 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

评分

参与人数 1技术分 +1 收起 理由
张勇1993 + 1 神马都是浮云

查看全部评分

2 个回复

倒序浏览
说到浮点数的相关计算,你可以看看这个帖子:谁偷了我的精度?浮点数浅谈
希望能让大家学到一点点知识

评分

参与人数 1技术分 +1 收起 理由
张勇1993 + 1 很给力!

查看全部评分

回复 使用道具 举报
黄玉昆 发表于 2013-7-7 10:06
说到浮点数的相关计算,你可以看看这个帖子:谁偷了我的精度?浮点数浅谈
希望能让大家学到一点点知识
...

enen 好的 !多谢啦啊!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马