c - 在 C 中存储一个长小数

标签 c variables

<分区>

我正在尝试做一道物理题,需要存储一个大约 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/

相关文章:

c - 如何从关键字 Zig 引用 C 符号?

python - (python) 我的变量应该是局部变量还是全局变量? (最佳实践)

php - 如何在 PHP+HTML+SQL 中使用带空格的 GET 传递表单中的变量

PHP 定义一个变量,如果它没有传递给函数

java - 为什么我收到 Lucene TopDocs TotalHits 类型错误

c - 为什么从C调用Rust库会导致内存泄漏?

c - #define 和 && 有问题吗

c - `while(*p++ = *(p+1));` 是未定义的行为吗?

javascript - 在 Javascript 中将变量与变量值结合起来

C - 在 32 位机器上将无符号 long long 转换为 double