<分区>
我正在尝试做一道物理题,需要存储一个大约 5 * 10-11 的值; 在尝试了 float、long double 和其他几个之后,他们认为都不够长。是否有允许我这样做的数据类型? 谢谢
long double I = 0;
I = 0.01902*pow(0.00318,3)/12;
printf("%Lf\n",I);
输出为 0.000000
<分区>
我正在尝试做一道物理题,需要存储一个大约 5 * 10-11 的值; 在尝试了 float、long double 和其他几个之后,他们认为都不够长。是否有允许我这样做的数据类型? 谢谢
long double I = 0;
I = 0.01902*pow(0.00318,3)/12;
printf("%Lf\n",I);
输出为 0.000000
最佳答案
long double I = 0;
I = 0.01902*pow(0.00318,3)/12;
此时,I
的值大约为 5.096953e-11
。然后……
printf("%Lf\n", I);
此 printf()
调用中唯一的格式说明符是 %Lf
。这表明参数是一个long double
(L
),并且它应该被打印为一个 float (f
)。最后,由于没有明确给出精度(句点后打印的位数),因此假定为 6
。这意味着最多 6 位数字将在句点之后打印。
有几种方法可以解决这个问题。其中两个将是...
printf(".15Lf\n", I);
这会将精度设置为 15
。因此,句点后将打印 15 位数字。还有……
printf("%Le\n", I);
这将以科学记数法打印数字,即 5.096953e-11
。如果需要,它也可以配置为打印更多数字。
关于c - 在 C 中存储一个长小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36393013/