最后打印双打没有零?

时间:2015-04-12 01:00:59

标签: c printf double

有没有办法使用fprint在c中打印双打,以便打印的精度最低(例如,总是打印一个没有小数的整数?)

我知道你可以做类似printf的事情("%。0f",数字);但我想知道是否有办法使用最小精度使打印精确(当然,无论何时数字都可以在基数10中有限地表示)。

1 个答案:

答案 0 :(得分:3)

所有有限double,以基数10或基数2(通常)编码,或者基数16可以完全在基数10中有限地打印。{ {1}}可能需要100多个数字,但它不是无限的。 DBL_MIN无需执行该级别。因此它最终成为自定义代码,当然可以在没有零的情况下打印双打"

推荐printf()并对缓冲区进行后期处理,以便根据需要移除最不重要的sprintf(buffer, "%.*e", DBL_DECIMAL_DIG - 1, some_double),足够接近"回答代码的目标。

Ref