Не правильная конвертация из float в int C#?

Не могу понять почему выполняется по разному. пример ниже.
float val = 0.94;
(int)(val*100)
Результат 93 ?

float val = 0.94;
float val1 = val*100;
(int)(val1)
Результат 94 ?
  • Вопрос задан
  • 350 просмотров
Решения вопроса 1
@deliro
Правильная. Почитайте про то, как устроены float. Взгляните на decimal. Возможно, они подойдут для ваших целей.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Mrrl
@Mrrl
Заводчик кардиганов
Не воспроизвелось. Написал так:
static int Val1(){
            float val = 0.94f;
            return (int)(val*100);
        }
        static int Val2() {
            float val = 0.94f;
            float val1 = val*100;
            return (int)(val1);
        }

Обе функции вернули 94. Как у вас получилось 93?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы