НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
292 of 1310 menu

Константа EPSILON

Константа EPSILON представляет собой машинный эпсилон - наименьшее положительное число такое, что 1.0 + EPSILON ≠ 1.0. Используется для сравнения чисел с плавающей точкой с учётом погрешности вычислений.

Импорт

import kotlin.math.EPSILON

Синтаксис

const val EPSILON: Double = 2.220446049250313E-16

Пример

Выведем значение константы EPSILON:

println(EPSILON)

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

Double 2.220446049250313E-16

Пример

Сравним два числа с плавающей точкой с использованием EPSILON:

val a = 0.1 + 0.2 val b = 0.3 if (Math.abs(a - b) < EPSILON) { println("Numbers are equal") } else { println("Numbers are not equal") }

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

String "Numbers are equal"

Пример

Покажем разницу между обычным сравнением и сравнением с использованием EPSILON:

val x = 1.0000000000000001 val y = 1.0 println("Direct comparison: ${x == y}") println("Epsilon comparison: ${Math.abs(x - y) < EPSILON}")

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

Direct comparison: false Epsilon comparison: true

Пример

Проверим сложение единицы с EPSILON:

val result = 1.0 + EPSILON println("1.0 + EPSILON = $result") println("1.0 + EPSILON == 1.0: ${result == 1.0}")

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

1.0 + EPSILON = 1.0000000000000002 1.0 + EPSILON == 1.0: false

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

  • функцию abs,
    которая возвращает абсолютное значение числа
  • функцию ulp,
    которая возвращает размер единицы в последнем знаке
  • функцию nextUp,
    которая возвращает следующее представимое число
  • функцию nextDown,
    которая возвращает предыдущее представимое число
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить