Bun*_*edu -1 c floating-point precision double
如果我运行此代码:
float a=1.123456789;
printf("The float value is %f\n",a);
double b=1.123456789876543
printf("The double value is %lf",b);
Run Code Online (Sandbox Code Playgroud)
它打印:
浮点值为1.123457
双精度值为1.123457
第一行是可以理解的,因为float的精度是~6位十进制数.但是第二行不应该显示更多数字吗?我正在使用Turbo C++ 4.0 for Windows,如果这有帮助的话.
该%f格式说明打印6位精度默认.如果要打印更多数字,则需要为格式说明符添加精度:
float a=1.123456789;
printf("The float value is %.15f\n",a);
double b=1.123456789876543;
printf("The double value is %.15lf",b);
Run Code Online (Sandbox Code Playgroud)
输出:
The float value is 1.123456835746765
The double value is 1.123456789876543
Run Code Online (Sandbox Code Playgroud)