InhaltsverzeichnisKlicke auf den Link, um zur gewünschten Stelle zu navigieren
Dieser Inhalt wurde automatisch aus dem Ukrainischen übersetzt.
In Ruby, wenn Sie zwei ganze Zahlen (Integer) teilen, wird das Ergebnis ebenfalls eine ganze Zahl sein. Daher:
6 / 4
gibt 1 zurück, nicht 1.5. Ruby schneidet einfach den Dezimalteil ab - das ist die sogenannte ganzzahlige Division.
Warum das so ist
- 6 und 4 sind beide Objekte der Klasse Integer.
- Der Operator / zwischen zwei ganzen Zahlen gibt Integer zurück, indem er den Dezimalteil abschneidet.
6.class # => Integer 4.class # => Integer 6 / 4 # => 1
Wie man das richtige Ergebnis mit Dezimalteil erhält
Es gibt mehrere Möglichkeiten. Lassen Sie uns diese nacheinander betrachten.
Wie man das richtige Ergebnis mit Dezimalteil erhält:
6.0 / 4 # => 1.5 6 / 4.0 # => 1.5
Verwenden Sie die Methode fdiv. Die Methode fdiv führt die Division durch und gibt immer Float zurück, selbst wenn beide Zahlen ganz sind. Das ist praktisch, wenn eine genaue Bruchdivision ohne explizite Typumwandlung erforderlich ist.
6.fdiv(4) # => 1.5
Explizite Typumwandlung (to_f). Die Methode to_f wandelt eine Zahl in Float um. Nach dieser Umwandlung wird die Division automatisch wie mit Fließkommazahlen durchgeführt, und das Ergebnis wird ebenfalls Float sein. Man kann auch den Divisor umwandeln.
6.to_f / 4 # => 1.5
Kurz gesagt:Die ganzzahlige Division (Integer / Integer) schneidet den Dezimalteil ab.Um eine Fließkommazahl (Float) zu erhalten, müssen Sie:
- Float in der Division verwenden (6.0 / 4)
- oder die Methode fdiv (6.fdiv(4))
Noch ein paar Beispiele:
# Ganzzahlige Division p 7 / 2 # => 3 # Division mit Float p 7.0 / 2 # => 3.5 p 7 / 2.0 # => 3.5 p 7.fdiv(2) # => 3.5 p 7.to_f / 2 # => 3.5
Dieser Beitrag hat noch keine Ergänzungen vom Autor.