float to int
От: m2000  
Дата: 02.03.11 07:30
Оценка: :))) :))) :)
сегодня наткнулся на странное поведение при преобразовании

float a=0.35;
float b=0.05;

printf("%d", int(a/b));

выводит 6

если
printf("%f", (a/b));
то получаю 7.0000

а преобразовать нужно именно в int.

пробовал static_cast — тоже самое.
Re: float to int
От: uzhas Ниоткуда  
Дата: 02.03.11 07:34
Оценка: +4
Здравствуйте, m2000, Вы писали:

M>сегодня наткнулся на странное поведение при преобразовании


M>float

опять двадцать пять
Re: float to int
От: NordSky Россия  
Дата: 02.03.11 07:39
Оценка: :)
Здравствуйте, m2000, Вы писали:

M>сегодня наткнулся на странное поведение при преобразовании


M>float a=0.35;

M>float b=0.05;

M>printf("%d", int(a/b));


M>выводит 6


M>если

M>printf("%f", (a/b));
M>то получаю 7.0000

M>а преобразовать нужно именно в int.


M>пробовал static_cast — тоже самое.


Могу посоветовать почитать стандарт представления чисел с плавающей запятой, про округление чисел и узнать в какую сторону округляет числа функция printf. Думаю все станет ясно
Re[2]: float to int
От: uzhas Ниоткуда  
Дата: 02.03.11 07:40
Оценка: 1 (1)
Здравствуйте, uzhas, Вы писали:

M>>float

наблюдаем за фокусом еще разок:
http://codepad.org/5PNmsLNr
Re[2]: float to int
От: unreg_flex  
Дата: 05.03.11 18:48
Оценка:
Здравствуйте, NordSky, Вы писали:

NS>Могу посоветовать почитать стандарт представления чисел с плавающей запятой, про округление чисел и узнать в какую сторону округляет числа функция printf. Думаю все станет ясно


Нууу и в какую же сторону она округляет?
Re[2]: float to int
От: Vain Россия google.ru
Дата: 06.03.11 02:35
Оценка: :))
Здравствуйте, uzhas, Вы писали:

M>>сегодня наткнулся на странное поведение при преобразовании

M>>float
U>опять двадцать пять
Имя им легион
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.