关于long double的问题
我急切的想问大家一下,
#include<stdio.h>
main()
{long double x;
x=2222222222.222226666L;
printf("x=%f\n",x);}
x=2222222222.222227
Press any key to continue
问:Long double 是18~19位。书中说“在编写实型常量时,L表示该常量为long double长双精度类型”。为什么结果不会是x=2222222222.222226666 呢? C long?double
[解决办法]
32 位下 long double 和 double 都是 8 个字节的吧.
用 printf("x=%.20f\n",x); 可以看到你想要的输出.
[解决办法]
原因是double在计算机内部采用的是科学计数法,底数的精度没那么高。。。
ps:printf("x=%f\n",x);},long double能这样输出么?