Функция math.RoundToEven
Функция math.RoundToEven округляет переданное число до ближайшего целого значения.
Особенность этой функции заключается в том, что она использует правило "банковского округления":
если число находится ровно посередине между двумя целыми значениями (дробная часть равна 0.5),
то округление происходит к ближайшему четному числу.
В первый параметр мы передаем число с плавающей точкой типа float64, которое нужно округлить.
Функция возвращает округленное значение также типа float64.
Синтаксис
math.RoundToEven(x)
Пример
Давайте округлим число 12.5, которое находится ровно посередине между 12 и 13.
По правилу банковского округления результат должен быть 12 (ближайшее четное):
package main
import (
"fmt"
"math"
)
func main() {
res := math.RoundToEven(12.5)
fmt.Println(res)
}
Результат выполнения кода:
12
Пример
Теперь округлим число 13.5, которое также находится посередине между 13 и 14.
Ближайшим четным числом является 14, поэтому результат будет 14:
package main
import (
"fmt"
"math"
)
func main() {
res := math.RoundToEven(13.5)
fmt.Println(res)
}
Результат выполнения кода:
14
Пример
Для чисел, которые не находятся ровно посередине, функция работает как обычное округление.
Округлим число 12.6, которое ближе к 13, чем к 12:
package main
import (
"fmt"
"math"
)
func main() {
res := math.RoundToEven(12.6)
fmt.Println(res)
}
Результат выполнения кода:
13
Пример
Рассмотрим округление отрицательного числа -15.5.
Ближайшими целыми значениями являются -15 и -16, из которых четным является -16:
package main
import (
"fmt"
"math"
)
func main() {
res := math.RoundToEven(-15.5)
fmt.Println(res)
}
Результат выполнения кода:
-16
Смотрите также
-
функцию
math.Round,
которая округляет число до ближайшего целого (от 0.5 вверх) -
функцию
math.Floor,
которая округляет число вниз до ближайшего целого -
функцию
math.Ceil,
которая округляет число вверх до ближайшего целого -
функцию
math.Trunc,
которая отбрасывает дробную часть числа