【发布时间】:2012-05-11 17:45:44
【问题描述】:
我正在编写一个浮点打印和格式化库,并希望避免打印尾随零位。
为此,我想准确确定小数点后前 N 个小数位内的最后一个非零数字。我想知道是否有一种特别有效的方法可以做到这一点。
【问题讨论】:
-
我没有证据,但我的直觉是你只需要计算出第一个
N小数位,然后检查零。我猜测的原因是,如果您将(例如)1.00049打印到小数点后 3 位,那么要知道有任何尾随零,您必须确定第 4 位不是5。如果不告诉你前面的数字,我认为没有任何捷径可以告诉你。我确信有很多小捷径可以有效地解决所有 4 个问题。
标签: c++ floating-point ieee-754