为何c中staticcastltintgt1003*100输出变成1002
你好。是如许的因为小数在计算机里是用2进制表示的在位数固定的情况下其实大年夜部分情况下计算机是无法精确表达小数的值的。比如3.5可以表达为1*211*2^(-1)可以看到...
你好。是如许的因为小数在计算机里是用2进制表示的在位数固定的情况下其实大年夜部分情况下计算机是无法精确表达小数的值的。比如3.5可以表达为1 * 2 1 1* 2^(-1) 可以看到小数的表示最小单位和2的-n次方有关比这个值小的数值是n位二进制不克不及表示的。 比如double d = 0.03;在调试模式下可以看到实际上d的值是0.02999999。这种情况下10.03*100实际获得的是1002.999999再进行类型转换去掉落小数获得1002
展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询