Ce face math.Round
math.Round(x) rotunjește la cel mai apropiat întreg. Când x este exact la jumătate (2.5, -2.5), rotunjește departe de zero: Round(2.5) este 3, Round(-2.5) este -3. Este rotunjirea învățată la școală.
math.RoundToEven(x) trimite jumătățile spre numărul par cel mai apropiat: RoundToEven(2.5) este 2, RoundToEven(3.5) este 4. Se numește „rotunjirea bancherului” și evită ca o sumă mare de valori rotunjite să crească sistematic.
Ambele rotunjesc la întreg. Pentru două zecimale înmulțești cu 100, rotunjești și împarți cu 100. Dacă vrei doar să afișezi cu două zecimale, folosește fmt.Printf("%.2f", x).
Parametri
| Parametru | Descriere |
|---|---|
x |
Numărul de rotunjit. |
Ce returnează
Întregul cel mai apropiat, ca float64.
Exemple
Exemplul 1: Round față de RoundToEven
package main
import (
"fmt"
"math"
)
func main() {
for _, x := range []float64{2.4, 2.5, 3.5, -2.5, 2.6} {
fmt.Printf("%5v Round = %3v RoundToEven = %v\n", x, math.Round(x), math.RoundToEven(x))
}
}
Rezultat
2.4 Round = 2 RoundToEven = 2
2.5 Round = 3 RoundToEven = 2
3.5 Round = 4 RoundToEven = 4
-2.5 Round = -3 RoundToEven = -2
2.6 Round = 3 RoundToEven = 3
Exemplul 2: Media notelor, rotunjită
Media 8.5 se rotunjește la 9 cu Round. Pentru două zecimale înmulțești, rotunjești și împarți.
package main
import (
"fmt"
"math"
)
func main() {
note := []float64{9, 8, 10, 7}
suma := 0.0
for _, n := range note {
suma += n
}
media := suma / float64(len(note))
fmt.Println("Media:", media)
fmt.Println("Nota finală:", math.Round(media))
fmt.Println("Preț:", math.Round(19.987*100)/100, "lei")
}
Rezultat
Media: 8.5
Nota finală: 9
Preț: 19.99 lei
Greșeli frecvente
- Folosești
int(x + 0.5)pentru rotunjire: pe numere negative greșește (int(-2.7 + 0.5)este-2, nu-3). Foloseștemath.Round. - Rotunjești valoarea doar ca s-o afișezi frumos: e mai simplu
fmt.Printf("%.2f", x), iar valoarea exactă rămâne pentru calcule.
Comenzi înrudite
math.Floor: math.Floor rotunjește în jos, math.Ceil în sus, iar math.Trunc taie partea zecimală (spre zero).math.Pow: math.Pow ridică x la puterea y, iar math.Pow10 calculează 10 la puterea n.