Antworten:
Wie wäre es damit?
"1,112".delete(',').to_i
Möglicherweise möchten Sie auch sicherstellen, dass Ihr Code korrekt lokalisiert ist, oder dass die Benutzer an die "internationale" Notation gewöhnt sind. Zum Beispiel bedeutet "1.112" tatsächlich unterschiedliche Zahlen in verschiedenen Ländern. In Deutschland bedeutet das etwas mehr als eins statt tausend und so.
Der entsprechende Wikipedia-Artikel befindet sich unter http://en.wikipedia.org/wiki/Decimal_mark . Es scheint jedoch zu diesem Zeitpunkt schlecht geschrieben zu sein. Als Chinese bin ich mir zum Beispiel nicht sicher, woher diese Beschreibung über tausend Trennzeichen in China stammt.
Einige bequemer
"1,1200.00".gsub(/[^0-9]/,'')
Dadurch funktioniert "1 200 200" ebenfalls ordnungsgemäß
'1,1200.00'.gsub(/[^0-9\.]/,'').to_f
.
"1,1200.00"
zu "1120000"
? Wollen Sie nicht einfach das ,
(oder, je nach Gebietsschema, das .
) ersetzen ? Dies konvertiert es auch nicht in eine Ganzzahl oder ein Float, sondern nur in eine Zeichenfolge ohne Trennzeichen.
Ich würde tun mit String#tr
:
"1,112".tr(',','').to_i # => 1112
String count = count.replace(",", "");