Warum gibt die Division in Ruby eine Ganzzahl statt eines Dezimalwerts zurück?



2 Answers

Es macht Integer Division. Sie können to_f , um Dinge in den Fließkommamodus zu to_f :

9.to_f / 5  #=> 1.8
9 / 5.to_f  #=> 1.8

Dies funktioniert auch, wenn Ihre Werte Variablen anstelle von Literalen sind. Die Konvertierung eines Werts in einen Gleitkommawert ist ausreichend, um den gesamten Ausdruck zur Fließkommaarithmetik zu zwingen.

Question

Beispielsweise:

9 / 5  #=> 1

aber ich erwartete 1.8 . Wie kann ich das korrekte Dezimal (nicht ganzzahlige) Ergebnis erhalten? Warum gibt es überhaupt 1 ?




Ändern Sie die 5 zu 5.0 . Du bekommst eine ganzzahlige Division.




Sie können es mit irb überprüfen:

$ irb
>> 2 / 3
=> 0
>> 2.to_f / 3
=> 0.666666666666667
>> 2 / 3.to_f
=> 0.666666666666667



Related