有没有一种方法可以使用 fprint 在 c 中打印 double ,以便打印的精度尽可能低(例如,始终打印整数而不带小数?)
我知道你可以做类似 printf("%.0f",number); 的事情但我想知道是否有一种方法可以使用最小精度来使打印准确(当然,只要数字可以以 10 为基数进行有限表达)。
最佳答案
所有有限double
,以基数10或基数2(通常)编码,或基数16可以完全以基数有限地打印10. DBL_MIN
可能需要 100 多个数字才能完成,但它不是无限的。 printf() 不需要执行到该级别。所以它最终成为自定义代码,当然可以“打印不带零的 double ”
推荐 sprintf(buffer, "%.*e", DBL_DECIMAL_DIG - 1, some_double)
并对缓冲区进行后处理,以根据需要删除最低有效 0
“足够接近”回答代码的目标。
关于c - 打印 double ,最后不加零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29584788/