关于C++类型转换问题

问题描述:

有程序如下:

img

输出结果:
67
66

为什么两个结果不一样?第二个怎么得出66?

可以参考博文关于C++ double浮点数精度丢失的分析
望采纳!

对于13.4是一个常量,在计算的时候,就是用13.4这个值去计算的。
x是一个变量,计算机在存储这个数的时候,有可能把它存成了13.3999999,所以在计算x/2的时候,可能是用13.399999这个值去除以0.2进行计算的。也就是13.399/0.2 = 66.999995,取整就是66