РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
403 of 1593 menu

Функция math.Remainder

Функция math.Remainder вычисляет остаток от деления двух чисел с плавающей точкой. В отличие от функции math.Mod, которая просто отбрасывает дробную часть частного, math.Remainder округляет частное до ближайшего целого числа. Это делает результат симметричным относительно нуля и часто используется в тригонометрических и циклических вычислениях. Первым параметром передается делимое (x), вторым — делитель (y).

Синтаксис

math.Remainder(x, y float64) float64

Функция принимает два аргумента типа float64 и возвращает значение типа float64. Результат вычисляется по формуле: x - y * round(x / y), где round округляет до ближайшего целого. Если делитель равен нулю, функция возвращает NaN. Если результат равен нулю, он возвращается с положительным знаком.

Пример с положительными числами

Рассмотрим базовый пример с положительными числами:

package main import ( "fmt" "math" ) func main() { res := math.Remainder(10.0, 3.0) fmt.Println(res) }

Результат выполнения кода:

1

Здесь частное 10/3 ≈ 3.333 округляется до 3, и остаток вычисляется как 10 - 3*3 = 1.

Пример с отрицательными числами

Проверим работу функции с отрицательным делимым:

package main import ( "fmt" "math" ) func main() { res := math.Remainder(-10.0, 3.0) fmt.Println(res) }

Результат выполнения кода:

-1

Частное -10/3 ≈ -3.333 округляется до -3, остаток: -10 - 3*(-3) = -1. Результат имеет знак делимого, что характерно для данного подхода.

Пример с округлением до ближайшего целого

Продемонстрируем случай, когда частное округляется в большую сторону:

package main import ( "fmt" "math" ) func main() { res := math.Remainder(7.0, 4.0) fmt.Println(res) }

Результат выполнения кода:

-1

Частное 7/4 = 1.75 округляется до 2, остаток: 7 - 4*2 = -1. Обратите внимание, что результат может быть отрицательным, даже если оба числа положительны, из-за округления в большую сторону.

Пример с нулевым делителем

Посмотрим, что произойдет при делении на ноль:

package main import ( "fmt" "math" ) func main() { res := math.Remainder(5.0, 0.0) fmt.Println(res) }

Результат выполнения кода:

NaN

При делении на ноль функция возвращает math.NaN() (Not-a-Number), что соответствует математической неопределенности.

Смотрите также

  • функцию math.Mod,
    которая вычисляет остаток от деления с отбрасыванием дробной части частного
  • функцию math.Modf,
    которая разбивает число на целую и дробную части
  • функцию math.Floor,
    которая округляет число вниз до ближайшего целого
  • функцию math.Ceil,
    которая округляет число вверх до ближайшего целого
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить