#include <stdio.h>\nint main() {\n float a = 0.12345678901234567890;\n double b = 0.12345678901234567890;\n \n printf("a=%.20f\n", a);\n printf("b=%.20f\n", b);\n \n return 0;\n}\n\n在C语言中,默认情况下,浮点数类型为双精度类型(double),而使用%f格式符打印浮点数时,只能打印出6位小数。因此,在printf函数中,a和b的值被截断,只打印出了6位小数。如果想要打印更多位数,可以使用%.20f来表示需要打印的小数位数。\n\n修改后的代码如下:\n\nc\n#include <stdio.h>\n\nint main() {\n float a = 0.12345678901234567890;\n double b = 0.12345678901234567890;\n \n printf("a=%.20f\n", a);\n printf("b=%.20f\n", b);\n \n return 0;\n}\n\n\n运行上述代码,就可以打印出更多位的小数。

C语言浮点数精度问题:为什么 printf 输出结果不完整?

原文地址: https://www.cveoy.top/t/topic/p3FO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录