c - 在 C 中获得大约 20-30 位的精度

标签 c floating-point

因此,我正在尝试以相当大的精度计算某个值。 C中的表达式是:

long double t = 2.0L+.2L*(sp)+s.missRate*50L;

我的结果是:11.575345

但“真实”结果是:11.575345222971968

我正在使用 long double,这是 AFAIK 中最大的原始类型。我不必使用任何精度库来执行此操作。那么,什么 C 类型具有这种精度?

最佳答案

结果可能足够精确,但您打印的结果四舍五入到小数点后 6 位。提高打印精度,像这样:

long double var;
printf("%.20Lf\n", var); //20 digits after the radix

关于c - 在 C 中获得大约 20-30 位的精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4139807/

相关文章:

c - 我应该在这段 C 代码中使用指针吗?在哪里?

计算元素在固定点的位置以进行 TFT 绘图

c# - p/invoke 从 c# 调用 C dll

Objective-C - 使用 (NSNumber floatValue) 编程接收信号 : “EXC_BAD_ACCESS” .

c - 为什么 C 没有无符号 float ?

c - scanf_s 不起作用,错误是什么?任何人都可以解决这个问题吗

python - 如果数字大于或等于 772000000000000,为什么我的 python 代码会产生无限循环?

objective-c - 需要帮助舍入数字( float )

java - 双重计算产生奇数结果

c - 打开 .c 文件时自动包含头文件