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
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
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.
sumber
Beberapa lebih nyaman
itu membuat "1 200 200" bekerja dengan baik juga
sumber
'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.Berikut ini adalah metode lain yang akan berfungsi, meskipun seperti beberapa metode lain, metode ini akan menghapus tempat desimal.
sumber
Saya akan menggunakan
String#tr
:sumber
Jika seseorang ingin menggunakan lebih dari koma, saya penggemar:
tidak tahu tentang kinerja tetapi, itu lebih fleksibel daripada
gsub
, yaitu:sumber
sumber