正の整数の基本的な桁数カウンター (整数が入力され、その整数の桁数が出力される) を作成しようとしています。これは私の一般的な式です:
dig(x) := Math.floor(Math.log(x,10))
dig(x)
に相当するものを Ruby で実装しようとしたところ、計算dig(1000)
中に 2.9999999999999996 が返されたため、3 ではなく 2Math.log
が返され、2 に切り捨てられることがわかりました。この問題を処理する適切な方法は何ですか? (このアプローチを実装するために使用される言語に関係なく、この問題が発生する可能性があると想定していますが、そうでない場合は、回答で説明してください)。