例えば、
24987654 がある場合、24000000 を返す必要があります。これは可能ですか?
これが1つの素朴なアルゴリズムです:
n = 24987654
n / (10 ** (n.to_s.size - 2)) * (10 ** (n.to_s.size - 2)
=> 24000000
これを行う別の方法は次のとおりです。
x -= x % (10 ** (Math.log(x, 10).to_i - 1))
上記のステートメントでは:
Math.log(x, 10).to_i - 1
削除する意味のない桁数を決定しますx % (10 ** number_of_insignificant_digits)
数値の重要でない部分を計算しますx
、結果が含まれるようになりましたプログラムのオンライン テストは次のとおりです: http://ideone.com/trSNOr
別の方法:
n = 24987654
a = n.to_s[0, 2] + '0' * ((a.to_s.length)-2)
文字列を出力します:
=> "24000000"
.to_i
メソッドを呼び出す整数として変換できます