作业帮 > 综合 > 作业

System.out.println(0.1*10); System.out.println(0.1+0.1+0.1+0

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/17 18:55:38
System.out.println(0.1*10); System.out.println(0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1);
System.out.println(0.4+0.2);
大伙给算算并解释以下原因,主要是解释原因.
偶挺纳闷的
Java中的简单浮点数类型float和double不能够进行运算.不光是Java,在其它很多编程语言中也有这样的问题.在大多数情况下,计算的结果是准确的,但是多试几次(可以做一个循环)就可以试出类似上面的错误.
主要原因是浮点型数据在存储时是按浮点类型存储的,一般它会占用比int多一倍的字节去存储,前面部分存存储整数部分,后面的部分是小数部分,注意这时要将10进制转换成2进制数据,因为一个字节存储的内容是有限的,因此就会有数据丢失问题,最后算出来的结果是个进似值.