Antworten:
Es macht eine ganzzahlige Division. Sie können eine der Zahlen a machen, Floatindem Sie Folgendes hinzufügen .0:
9.0 / 5 #=> 1.8
9 / 5.0 #=> 1.8
.to_fAntwort ist besser, wenn Sie zwei Variablen teilen, die Ganzzahlen enthalten, z a.to_f / b. Wenn Sie buchstäblich zwei fest codierte Ganzzahlen teilen (was wahrscheinlich seltsam ist), ist die Verwendung 9.0 / 5in Ordnung.
Es macht eine ganzzahlige Division. Sie können verwenden to_f, um Dinge in den Gleitkommamodus zu zwingen:
9.to_f / 5 #=> 1.8
9 / 5.to_f #=> 1.8
Dies funktioniert auch, wenn Ihre Werte Variablen anstelle von Literalen sind. Das Konvertieren eines Werts in ein Gleitkomma reicht aus, um den gesamten Ausdruck in Gleitkomma-Arithmetik zu zwingen.
Es gibt auch die Numeric#fdivMethode, die Sie stattdessen verwenden können:
9.fdiv(5) #=> 1.8
Sie können das Ruby- mathnModul einschließen .
require 'mathn'
Auf diese Weise können Sie die Aufteilung normal vornehmen.
1/2 #=> (1/2)
(1/2) ** 3 #=> (1/8)
1/3*3 #=> 1
Math.sin(1/2) #=> 0.479425538604203
Auf diese Weise erhalten Sie eine exakte Division (Klasse Rational), bis Sie sich entscheiden, eine Operation anzuwenden, die beispielsweise nicht als rational ausgedrückt werden kann Math.sin.
Ändern Sie das 5in 5.0. Sie erhalten eine ganzzahlige Division.
Fixnum # to_r wird hier nicht erwähnt, es wurde seit Ruby 1.9 eingeführt. Es wandelt Fixnum in eine rationale Form um. Nachfolgend finden Sie Beispiele für seine Verwendung. Dies kann auch eine genaue Unterteilung ergeben, solange alle verwendeten Zahlen Fixnum sind.
a = 1.to_r #=> (1/1)
a = 10.to_r #=> (10/1)
a = a / 3 #=> (10/3)
a = a * 3 #=> (10/1)
a.to_f #=> 10.0
Beispiel, bei dem ein Float, der mit einer rationalen Zahl betrieben wird, das schwebende Ergebnis verdeckt.
a = 5.to_r #=> (5/1)
a = a * 5.0 #=> 25.0
def method; a - b/8; endwürde einfach das Ergebnis der Berechnung von der Methode zurückgeben, da der letzte Ausdruck in einem Methodenaufruf der Rückgabewert ist.