Afronden van getallen

Ruby:
Afronden van getallen

Hoe:

# Basis afronding
puts 3.14159.round      # => 3
puts 2.6.round          # => 3

# Precisie specificeren
puts 3.14159.round(2)   # => 3.14
puts 2.675.round(2)     # => 2.68

# Naar beneden afronden
puts 2.9.floor          # => 2

# Naar boven afronden
puts 2.1.ceil           # => 3

# Naar nul afronden
puts -2.9.round         # => -3
puts -2.9.truncate      # => -2

Voorbeelduitvoer:

3
3
3.14
2.68
2
3
-3
-2

Diepere Duik

Het afronden van getallen is niet nieuw—mensen doen dit al eeuwen om berekeningen eenvoudiger te maken of om binnen de beperkingen van hun gereedschappen te werken. In Ruby is de round methode veelzijdig, met de mogelijkheid om standaard naar het dichtstbijzijnde hele getal af te ronden of naar een gespecificeerde decimale plaats.

Een alternatief voor round is floor voor altijd naar beneden afronden, en ceil voor altijd naar boven afronden, ongeacht de waarde van het getal. Om gewoon de decimalen weg te snijden, heb je truncate.

Historisch gezien wordt afronden kritiek in de omgang met floating-point rekenkunde vanwege de inherente onnauwkeurigheid. Ruby, zoals de meeste talen, volgt de IEEE 754-standaard voor floating-point getallen, wat betekent dat het afronden op een manier afhandelt die de meeste programmeurs zouden moeten kunnen voorspellen en op vertrouwen.

Er is echter meer—dingen zoals de bankiersafronding (ook bekend als afronden naar het dichtstbijzijnde even getal) zijn concepten die Ruby-ontwikkelaars mogelijk handmatig moeten implementeren, aangezien de round methode dit niet standaard aanbiedt.

Zie Ook