97 votes

ruby convertit une chaîne en entier ou en float

Merci pour votre temps.

 irb(main):015:0> "1,112".to_i
=> 1
 

Existe-t-il une méthode intéressante pour convertir "1 112" en entier 1112, au lieu de 1?

J'en ai un mais pas soigné:

 irb(main):016:0> "1,112".split(',').join.to_i
 

183voto

Michael Kohl Points 33345
Vraiment ?

6voto

Yì Yáng Points 11

Vous pouvez aussi vous voulez vous assurer que votre code localise correctement, ou assurez-vous que les utilisateurs sont utilisés pour la notation "internationale". Par exemple, "1,112" signifie, en réalité, des numéros différents dans les différents pays. En Allemagne, cela signifie que le nombre un peu plus, au lieu de mille et une chose.

Article Wikipédia correspondant est à http://en.wikipedia.org/wiki/Decimal_mark. Il semble être mal écrit à ce moment. Par exemple, en tant que Chinois, je ne sais pas où est-ce que ces description sur le séparateur de milliers dans la Chine viennent de.

4voto

Alexey Novikov Points 81

Certains plus pratique

 "1,1200.00".gsub(/[^0-9]/,'') 
 

"1 200 200" fonctionne correctement

1voto

Arup Rakshit Points 50675

Je ferais en utilisant String#tr :

 "1,112".tr(',','').to_i # => 1112
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X