@historydev
Редактирую файлы с непонятными расширениями

Почему каст u32::MAX в f32 увеличивает число на 5?

dbg!(u32::MAX as f32, u32::MAX);
/*
[src/main.rs:22:5] u32::MAX as f32 = 4294967300.0
[src/main.rs:22:5] u32::MAX = 4294967295
*/
  • Вопрос задан
  • 193 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
32-bit unsigned int имеет 32 бита для хранения значения.
32-bit float только 24 бита для хранения мантиссы.
Поэтому точность представления числа и падает.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы