%lf和%f的输出区别。

img


b=123.1234567为什么b的%f和%lf输出的都是123.123459,根据保留六位小数+四舍五入,输出的不应该是123.123457吗?

楼上不完整,而且单精度浮点数有效位是8位,双精度为16位,这里数字‘5’ 之后单精度浮点数就无法正确打印,而双精度浮点数在二进制转换到存储时总会有点误差,属于正常现象,若有帮助还请点个采纳捏

单精度浮点数有效数字最多是7位,有效数字是从第一个非零数字开始算的,因此上面数值中123.1234能精确表示,后面其他数字是有误差的