Константа EPSILON
Константа EPSILON класса f64
представляет собой наименьшее положительное число,
которое при сложении с 1.0 даёт результат,
отличный от 1.0. Иными словами, это
разница между единицей и следующим представимым
числом с плавающей точкой двойной точности.
Значение константы приблизительно равно
2.220446049250313e-16. Константа не принимает
параметров, так как является статическим свойством
типа f64.
Константа EPSILON часто используется для
сравнения чисел с плавающей точкой, поскольку
прямое сравнение через == может давать
неожиданный результат из-за погрешности округления.
Синтаксис
f64::EPSILON
Пример
Давайте выведем значение константы EPSILON
на экран:
fn main()
{
let res = f64::EPSILON;
println!("{}", res);
}
Результат выполнения кода:
0.0000000000000002220446049250313
Пример
Давайте проверим, что прибавление EPSILON
к единице даёт число, отличное от единицы:
fn main()
{
let res = 1.0 + f64::EPSILON;
println!("{}", res == 1.0);
}
Результат выполнения кода:
false
Пример
Давайте используем EPSILON для сравнения
двух чисел с плавающей точкой, которые должны
быть равны:
fn main()
{
let a = 0.1 + 0.2;
let b = 0.3;
let res = (a - b).abs() < f64::EPSILON;
println!("{}", res);
}
Результат выполнения кода:
true
Смотрите также
-
класс
f64,
который представляет числа с плавающей точкой двойной точности -
константа
MIN_POSITIVE,
которая содержит наименьшее положительное нормальное число -
константа
MIN,
которая содержит минимальное конечное значение -
константа
MAX,
которая содержит максимальное конечное значение