float类型的变量,精度只有 6-7 位有效数字,超出7 位又引进 “截断误差”。
例如: float x = 0.0000000000000000012300; 眼睛可以看出有20位小数,不是22位小数。 但通过计算机,化不净,引进 截断误差:
printf("%g ",x)
; //1.23e-018 --- 这个可以,18+2位得 20 printf("%.15g ",x)
; // 1.22999999327834e-018 -- 这个 不行了。
匿名回答于2024-05-22 23:23:15