Задать вопрос
@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
*/
  • Вопрос задан
  • 241 просмотр
Подписаться 2 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Rust для действующих разработчиков: переход с Python, С++ или C
    4 месяца
    Далее
  • Нетология
    Магистратура Бэкенд-разработка и архитектура программных систем
    2 года
    Далее
  • Яндекс Практикум
    Rust для действующих разработчиков: погружение в блокчейн
    5 месяцев
    Далее
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
32-bit unsigned int имеет 32 бита для хранения значения.
32-bit float только 24 бита для хранения мантиссы.
Поэтому точность представления числа и падает.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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