我正在尝试为正整数编写一个基本数字计数器(输入一个整数并输出该整数的位数)。这是我的通用公式:
dig(x) := Math.floor(Math.log(x,10))
我尝试dig(x)
在 Ruby 中实现等价物,发现当我计算时dig(1000)
我得到 2 而不是 3,因为Math.log
返回 2.9999999999999996,然后将被截断为 2。处理这个问题的正确方法是什么?(我假设无论用于实现此方法的语言如何,都会发生此问题,但如果不是这种情况,请在您的答案中解释)。