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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 闾丘日月 中级黑马   /  2012-6-5 23:33  /  1573 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

System.out.pringln((2.0-1.1))的输出结果是多少?
我不知道从什么地方看到这样一个东西。
感觉java确实有些地方搞的好奇怪啊。
要正确得出结果还需要System.out.println(BigDecimal.valueOf(2.0).subtract(BigDecimal.valueOf(1.1)));
感觉好坑爹啊,以前都不知道这个。。

点评

java的浮点实现是根据算法来做的,所以效率很慢,并不是真正意义上的浮点数运算  发表于 2012-6-5 23:39

评分

参与人数 1技术分 +1 收起 理由
袁錦泰 + 1

查看全部评分

2 个回复

倒序浏览
把这两个数转化为float就行了
System.out.println((float)2.0-(float)1.1);

再说一句BigDecimal这个关于标度的 真心看不懂{:soso_e127:}
回复 使用道具 举报
System.out.println((2.0-1.1));里边的2.0和1.1是默认double型的,改为System.out.println((2.0f-1.1f));就是浮点型了 输出0.9;
不就是两个带小数的数值运算,System.out.println(BigDecimal.valueOf(2.0).subtract(BigDecimal.valueOf(1.1)));确实有点坑 呵呵
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马