Apakah ada metode yang tepat untuk mengubah "1,112" menjadi bilangan bulat 1112, bukan 1?
Saya punya satu, tapi tidak rapi:
"1,112".split(',').join.to_i #=> 1112
Jawaban:
Bagaimana dengan ini?
"1,112".delete(',').to_i
Anda mungkin juga ingin memastikan bahwa kode Anda dilokalkan dengan benar, atau pastikan pengguna terbiasa dengan notasi "internasional". Misalnya, "1.112" sebenarnya berarti nomor yang berbeda di berbagai negara. Di Jerman itu berarti jumlahnya sedikit lebih dari satu, bukan seribu dan sesuatu.
Artikel Wikipedia terkait ada di http://en.wikipedia.org/wiki/Decimal_mark . Tampaknya saat ini ditulis dengan buruk. Sebagai contoh sebagai orang Cina saya tidak yakin dari mana asal deskripsi tentang seribu pemisah ini di Cina.
Beberapa lebih nyaman
"1,1200.00".gsub(/[^0-9]/,'')
itu membuat "1 200 200" bekerja dengan baik juga
'1,1200.00'.gsub(/[^0-9\.]/,'').to_f
.
"1,1200.00"
ke "1120000"
? Tidakkah Anda hanya ingin mengganti ,
(atau, tergantung pada lokalnya, the .
)? Juga, ini tidak mengubahnya menjadi integer atau float, hanya string tanpa pembatas.
Saya akan menggunakan String#tr
:
"1,112".tr(',','').to_i # => 1112
String count = count.replace(",", "");