2010-04-20 7 views
2

Disons que j'ai ces deux flotteurs:Faire une division flottante sans installer de gemmes supplémentaires?

a = 50.0 
b = 1048576.0 
c = a/b 

En imprimant c, je reçois ceci:

4.76837158203125e-005 

Faire la division avec calc.exe me donne le résultat ,0000476837158203125. Existe-t-il un moyen de réaliser la même chose avec Ruby sans installer de gemme supplémentaire?

+0

La division fonctionne très bien. C'est la façon dont le nombre est représenté c'est le problème. –

Répondre

5
a = 50.0 
b = 1048576.0 
c = a/b 
#=> 4.76837158203125e-005 
sprintf("%.20f", c) 
#> "0.00004768371582031250" 
2

Vous pouvez formater un flotteur en utilisant string formatting en Ruby comme ceci:

irb> "%.019f" % c 
=> "0.0000476837158203125" 
+0

ne suffira pas '"% .19f "% c'? Pourquoi utilisez-vous un zéro supplémentaire? – fl00r

+0

oui, vous avez raison, je viens d'utiliser le padding zéro de l'habitude d'imprimer des entiers, mais ce n'est pas nécessaire. – maerics

Questions connexes