在C中存储一个长小数

Jon*_*ein 1 c variables

我正在尝试做一个物理问题,需要存储一个大约5*10 -11的值; 在尝试漂浮,长双和其他几个没有看到足够长.是否有允许我这样做的数据类型?谢谢

long double I = 0;
I = 0.01902*pow(0.00318,3)/12;
printf("%Lf\n",I);
Run Code Online (Sandbox Code Playgroud)

输出为0.000000

344*_*442 5

long double I = 0;
I = 0.01902*pow(0.00318,3)/12;
Run Code Online (Sandbox Code Playgroud)

此刻,I价值大约是5.096953e-11.然后...

printf("%Lf\n", I);
Run Code Online (Sandbox Code Playgroud)

printf()调用中唯一的格式说明符是%Lf.这表明参数是a long double(L),并且它应该打印为浮点数(f).最后,由于未明确给出精度(在该时段之后打印的位数),因此假设为6.这意味着在此期间之后将打印最多6位数字.

有几种方法可以解决这个问题.其中两个是......

printf(".15Lf\n", I);
Run Code Online (Sandbox Code Playgroud)

这将设置精度15.因此,在此期间后将打印15位数字.和...

printf("%Le\n", I);
Run Code Online (Sandbox Code Playgroud)

这将以科学记数法打印数字,即5.096953e-11.如果需要,它也可以配置为打印更多数字.