Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsPmNuIc 38 of 373 menu
◀ ▶

Неточный дробный тип в Rust

Дробные значения хранятся приближенно. Не каждая десятичная дробь представима точно в двоичном виде, поэтому в памяти остается близкое, но не идеальное число.

При сложении на экран может попасть результат с длинным хвостом цифр. Это нормальное поведение типа, а не опечатка в программе.

Сложим две известные десятичные дроби и выведем сумму:

println!("{}", 0.1 + 0.2);

Печатное значение не совпадает с простой записью 0.3 в голове. Сравнивать такую сумму с 0.3 знаком равенства как с истиной не стоит: условие может не выполниться, хотя математически мы ждем тройку в десятых.

Даны числа:

let num1 = 0.1; let num2 = 0.2;

Выведите их сумму и опишите, чем она может отличаться от 0.3.

Скажите, почему не стоит проверять 0.1 + 0.2 == 0.3 как истину.

Скажите, означает ли длинный хвост цифр при выводе, что программа сломана.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить