我正在尝试做一个物理问题,需要存储一个大约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
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
.如果需要,它也可以配置为打印更多数字.