0.33-0.5+0.17=2.7756e-017
而
0.33+0.17-0.5=0
请用计算机内部的运算机制来详细解释原因。
4 个解决方案
#1
这是典型的大数吃小数。
把三个数都写为二进制表示,就一目了然了。
把三个数都写为二进制表示,就一目了然了。
#2
先做减法结果是负数,先做加法结果是非负数
这个跟负数在计算机中的表示法有关系
这个跟负数在计算机中的表示法有关系
#3
就是运算误差累积造成的。
#4
谁能给个详细的解释,我给个好评

#1
这是典型的大数吃小数。
把三个数都写为二进制表示,就一目了然了。
把三个数都写为二进制表示,就一目了然了。
#2
先做减法结果是负数,先做加法结果是非负数
这个跟负数在计算机中的表示法有关系
这个跟负数在计算机中的表示法有关系
#3
就是运算误差累积造成的。
#4
谁能给个详细的解释,我给个好评
