Відповіді:
Як щодо цього?
"1,112".delete(',').to_i
Ви також можете переконатися, що ваш код правильно локалізований, або переконатися, що користувачі звикли до "міжнародної" нотації. Наприклад, "1112" насправді означає різні цифри в різних країнах. У Німеччині це означає цифру трохи більше одиниці, а не тисячу і дещо.
Відповідна стаття у Вікіпедії знаходиться на веб-сайті http://en.wikipedia.org/wiki/Decimal_mark . Здається, в цей час це написано погано. Наприклад, як китайський, я не впевнений, звідки взявся цей опис про тисячу сепараторів у Китаї.
Деякі зручніші
"1,1200.00".gsub(/[^0-9]/,'')
це змушує "1 200 200" працювати належним чином
'1,1200.00'.gsub(/[^0-9\.]/,'').to_f
.
"1,1200.00"
в "1120000"
? Ви просто не хочете замінити ,
(або, залежно від локалі .
,?)? Крім того, це не перетворює його на ціле число або плаваюче число, це просто рядок без роздільників.
Я б використовував String#tr
:
"1,112".tr(',','').to_i # => 1112
String count = count.replace(",", "");