我希望能够找到 可靠的 方法来计算传递给函数的浮点值小数点后的有效位数在Erlang。假设所需函数的名称为counter
,它的行为应如下所示:
counter(3.14) => 2
counter(3.00001) => 5
counter(3.10000) => 1
谢谢大家。
更新:由于浮点数表示的性质,这个问题极不可能解决。
答案 0 :(得分:2)
确实没有可靠的方法来做到这一点。浮动是基数为2的数字。你问一个关于它们的有限长度10的表示的问题。对于大多数小数,不存在精确的基数2浮点表示。我们可以猜测,就像系统将它们格式化为字符串或输出一样。但可证明,它们都不是永远正确的。
答案 1 :(得分:1)
的伪代码,