Alle Originalinhalte werden auf Ukrainisch erstellt. Noch nicht alle Inhalte wurden übersetzt. Einige Beiträge sind möglicherweise nur auf Ukrainisch verfügbar.Mehr erfahren

Ganzzahlige Division in Ruby: Warum 6 / 4 gleich 1 ist

Beitrags-Cover: Ganzzahlige Division in Ruby: Warum 6 / 4 gleich 1 ist
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.

Wie Arrays in Ruby funktionieren: praktische Beispiele für each, map, select, inject, reduce, filter_map
28. Okt, 10:38 Uhr

Wie Arrays in Ruby funktionieren: praktische Beispiele für each, map, select, inject, reduce, filter_map

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
Wie self, protected und private funktioniert (Ruby)
28. Okt, 13:52 Uhr

Wie self, protected und private funktioniert (Ruby)

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
28. Okt, 14:42 Uhr

Wie funktioniert &:to_s in Ruby und was ist Symbol#to_proc

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
Was sind Proc und Lambda in Ruby?
28. Okt, 15:57 Uhr

Was sind Proc und Lambda in Ruby?

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
Was passiert, wenn man [1, 2, 3].map(&Person) aufruft?
29. Okt, 17:54 Uhr

Was passiert, wenn man [1, 2, 3].map(&Person) aufruft?

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
Singleton-Klasse (Eigenklasse) in Ruby: was ist das und wozu wird sie benötigt
29. Okt, 18:29 Uhr

Singleton-Klasse (Eigenklasse) in Ruby: was ist das und wozu wird sie benötigt

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
==, gleich?, eql?, === in Ruby: was sie überprüfen und wann man sie verwenden sollte
29. Okt, 20:47 Uhr

==, gleich?, eql?, === in Ruby: was sie überprüfen und wann man sie verwenden sollte

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
Include, Extend, Prepend in Ruby: wie sie funktionieren und wo der Unterschied liegt
29. Okt, 21:20 Uhr

Include, Extend, Prepend in Ruby: wie sie funktionieren und wo der Unterschied liegt

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska