Показано с 1 по 2 из 2
Тема: Хранение float в памяти
Комбинированный просмотр
-
03.06.2016, 18:42 #1
- Регистрация
- 03.06.2016
- Сообщений
- 1
- Сказал(а) спасибо
- 0
- Поблагодарили 0 раз(а) в 0 сообщениях
Хранение float в памяти
Товарищи программисты.
Почему так?
(int)( (0.1 + 0.5 )*10 ) = 6
(int)( (0.1 + 0.6 )*10 ) = 7
(int)( (0.1 + 0.7 )*10 ) = 7
-
01.11.2018, 11:52 #2
- Регистрация
- 20.04.2015
- Сообщений
- 1
- Сказал(а) спасибо
- 0
- Поблагодарили 0 раз(а) в 0 сообщениях
Re: Хранение float в памяти
Разве не должно быть так?!
(int)( (0.1 + 0.5 )*10 )
Действие 1: складываем 0.1 + 0.5 получаем 0.6 ("по дефолту" имеем тип double);
Действие 2: умножаем на 10, получаем 6.0 (тип все еще double)
Действие 3: "кастим" (преобразовываем) в тип int, получается 6 (а не 6.0).
Никакого float'а тут нет. Если хотите литерал для float, то используйте суффикс f (можно заглавную): 6f или 6.0f
P.S. Поздно посмотрел на дату темы. Может кому еще пригодится...
Социальные закладки