Câu trả lời:
Còn cái này thì sao?
"1,112".delete(',').to_i
Bạn cũng có thể muốn đảm bảo rằng mã của bạn được bản địa hóa chính xác hoặc đảm bảo rằng người dùng đã quen với ký hiệu "quốc tế". Ví dụ: "1,112" thực sự có nghĩa là các số khác nhau ở các quốc gia khác nhau. Ở Đức, nó có nghĩa là số hơn một một chút, thay vì một nghìn lẻ.
Bài viết tương ứng trên Wikipedia có tại http://en.wikipedia.org/wiki/Decimal_mark . Tuy nhiên, nó có vẻ được viết kém vào thời điểm này. Ví dụ như là một người Trung Quốc, tôi không chắc những mô tả về hàng nghìn dải phân cách ở Trung Quốc này đến từ đâu.
Một số tiện lợi hơn
"1,1200.00".gsub(/[^0-9]/,'')
nó làm cho "1 200 200" hoạt động bình thường
'1,1200.00'.gsub(/[^0-9\.]/,'').to_f
.
"1,1200.00"
sang "1120000"
? Bạn không chỉ muốn thay thế ,
(hoặc, tùy thuộc vào ngôn ngữ, .
)? Ngoài ra, điều này không chuyển đổi nó thành một số nguyên hoặc float, chỉ là một chuỗi không có dấu phân cách.
Tôi sẽ sử dụng String#tr
:
"1,112".tr(',','').to_i # => 1112
String count = count.replace(",", "");