"1,112"를 1 대신 정수 1112로 변환하는 깔끔한 방법이 있습니까?
하나 있지만 깔끔하지는 않습니다.
"1,112".split(',').join.to_i #=> 1112
답변:
이건 어때요?
"1,112".delete(',').to_i
코드가 올바르게 현지화되는지 확인하거나 사용자가 "국제"표기법에 익숙한 지 확인할 수도 있습니다. 예를 들어 '1,112'는 실제로 국가마다 다른 숫자를 의미합니다. 독일에서는 1000 개가 아니라 1 개를 조금 넘는 숫자를 의미합니다.
해당 Wikipedia 기사는 http://en.wikipedia.org/wiki/Decimal_mark에 있습니다. 그러나 현재로서는 제대로 쓰여지지 않은 것 같습니다. 예를 들어 중국인으로서 저는 중국에서 천 단위 구분 기호에 대한 이러한 설명이 어디에서 왔는지 잘 모르겠습니다.
좀 더 편리한
"1,1200.00".gsub(/[^0-9]/,'')
"1200200"도 제대로 작동합니다.
'1,1200.00'.gsub(/[^0-9\.]/,'').to_f
입니다.
"1,1200.00"
하고 "1120000"
싶습니까? ,
(또는 로케일에 따라) 를 바꾸고 싶지 .
않습니까? 또한 이것은 정수 또는 부동 소수점으로 변환하지 않고 구분 기호가없는 문자열로만 변환됩니다.
나는 사용하여 할 것입니다 String#tr
:
"1,112".tr(',','').to_i # => 1112
String count = count.replace(",", "");