Gibt es eine nette Methode, um "1.112" in eine ganze Zahl 1112 anstelle von 1 umzuwandeln?
Ich habe eine, aber nicht ordentlich:
"1,112".split(',').join.to_i #=> 1112
Gibt es eine nette Methode, um "1.112" in eine ganze Zahl 1112 anstelle von 1 umzuwandeln?
Ich habe eine, aber nicht ordentlich:
"1,112".split(',').join.to_i #=> 1112
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.
quelle
Einige bequemer
Dadurch funktioniert "1 200 200" ebenfalls ordnungsgemäß
quelle
'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.Das Folgende ist eine andere Methode, die funktioniert, obwohl sie wie bei einigen anderen Methoden Dezimalstellen entfernt.
quelle
Ich würde tun mit
String#tr
:quelle
Wenn jemand mehr als ein Komma ausgeben möchte, bin ich ein Fan von:
Keine Ahnung von Leistung, aber es ist flexibler als a
gsub
, dh:quelle
quelle