计算精度问题

mac2022-06-30  79

下列表达式中,可以得到精确结果的是() A.double d1 = 3.0 - 2.6; B.double d4 = 2.5 * 1.5;  C.double d2 = 30/300;  D. double d3 = 1/2 + 0.5; 

答案:B

解析:

C和D不用多说,30/300=0,1/2=0,全部失去了精度;

A的话0.6在转换为二进制的时候丢失了精度,因为没有2的次方等于0.6的;

B的话0.5刚刚等于2的-1次方;

实在想钻牛角尖的找找计算机底层是如何进行浮点数运算的就明白了。

 

最新回复(0)