黑马程序员技术交流社区
标题:
关于浮点类型的运算问题,有些疑问
[打印本页]
作者:
doevents
时间:
2013-9-15 12:10
标题:
关于浮点类型的运算问题,有些疑问
本帖最后由 doevents 于 2013-9-15 13:31 编辑
在无意间写代码的时候,运行结果和我想的不一样,System.out.println(2.0-1.1);结果不是0.9,确是0.8999999999999999,我尝试用浮点运算,结果都是不对的,但是我左思右想,觉得语法上没有错误,但是运行结果就是不对,也查过百度,但说的不是很懂,希望有通俗易懂的解释,谢谢{:soso_e101:}
作者:
Bad_Boy
时间:
2013-9-15 12:38
计算机里无法精确的存储浮点类型的数据
java 2进制数,1.1没有办法精确地表达出来,只能是无限的接近1.1
作者:
zhou5852
时间:
2013-9-15 12:42
package org.opensicience.zhou4chem.FormatterDemo;
import java.math.BigDecimal;
public class TestDouble {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(2.0-1.1);
BigDecimal a = new BigDecimal("2.0");
BigDecimal b = new BigDecimal("1.1");
System.out.println(a.subtract(b));
}
}
复制代码
如果你是基础者 这个问题先放下,这个是由浮点数存储机制引起的,一般对于这样的计算,都采用BigDecimal类的对象来处理,就像我这样的,你可以查下java 处理浮点数的机制就知道了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2