JAVA中2.0-1.1不是0.9的问题

来源:互联网 发布:中国软件千股千评 编辑:程序博客网 时间:2024/06/03 20:42

1、主要是因为十进制数转化为二进制数是可以精确转化地,而浮点型数据转化为二进制数时可能存在精度丢失问题。

所以在输出System.out.println(2.0-1.1);结果会是0.8999999999

2、在C语言中,同样进行2.0-1.1运算,结果却可能随着输出语句变换而变化

printf("%f",2.0-1.1);结果是0.9,主要是因为C默认输出6位二进制数,将结果截断导致的

printf("%.30f",2.0-1.1);这样结果就和java中结果相同了。

具体内容参考下面博客:

http://blog.csdn.net/ff992932164/article/details/9243381

0 0
原创粉丝点击