如何用C语言(C99)打印精度为10的大双精度值?

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

预计产量:2200400600801001200.0000000002

最佳答案

您需要为c使用任意精度库。
如果要存储整数,可以使用GMP
如果要存储大型浮点值,我建议您使用MPFR,这是一个支持浮点类型的库。MPFR基于GMP

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

10-16 11:30