c - Printf big double value 在 C 中具有高精度

标签 c

如何在 C 语言(C99)中打印精度为 10 的 big double 值?

double d1 = 1100200300400500600.0000000001;
double d2 = 1100200300400500600.0000000001;
double d3 = d1 + d2;
printf("???", d3);

期望输出:2200400600801001200.0000000002

最佳答案

您需要为 c 使用任意精度的库。

如果你要存储整数,你可以使用 GMP .

如果您要存储较大的浮点值,我建议您使用 MPFR ,一个支持浮点类型的库。 MPFR 基于GMP

关于c - Printf big double value 在 C 中具有高精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35651574/

相关文章:

C: 将 'while' 循环转换为 'for' 循环

c - 获取字符串 token 的长度

c - libc.so mmap strace

c - 将值放入c中的数组中

c - 在 CLion 中同时运行 C 服务器和客户端文件

交叉编译的二进制文件不存在?

c - 使用 libevent evhttp 流式传输客户端请求正文?

c - 需要有关二进制文件的帮助

c - windows下EOF的值

c - 在多线程程序中,malloc() 被独占锁定