96

「1,112」を1ではなく整数1112に変換するための優れた方法はありますか?

私は1つ持っていますが、きちんとしていません:

"1,112".split(',').join.to_i #=> 1112
4

7 に答える 7

179

これはどう?

 "1,112".delete(',').to_i
于 2012-07-13T08:44:03.290 に答える
6

また、コードが正しくローカライズされていることを確認したり、ユーザーが「国際」表記に慣れていることを確認したりすることもできます。たとえば、「1,112」は、実際には国によって異なる数値を意味します。ドイツでは、1000 か何かではなく、1 を少し上回る数を意味します。

対応するウィキペディアの記事はhttp://en.wikipedia.org/wiki/Decimal_markにあります。ただ、この時点では書き方が悪いようです。たとえば、中国人として、中国の千の区切り記号に関するこれらの説明がどこから来たのかわかりません。

于 2014-05-14T13:11:21.023 に答える
4

もう少し便利

"1,1200.00".gsub(/[^0-9]/,'') 

「1 200 200」も適切に機能します

于 2012-07-13T08:48:09.520 に答える
1

誰かがカンマ以上のサブアウトを探しているなら、私は以下のファンです:

"1,200".chars.grep(/\d/).join.to_i

パフォーマンスについてはわかりませんが、 a よりも柔軟ですgsub。つまり:

"1-200".chars.grep(/\d/).join.to_i
于 2016-06-01T03:16:01.320 に答える
1

私は使用しString#trます:

"1,112".tr(',','').to_i # => 1112
于 2014-01-17T18:52:51.743 に答える