8 / 8 / 2
Регистрация: 16.03.2011
Сообщений: 257
|
|
1 | |
На входе дробное число, которое надо преобразовать во float03.03.2012, 10:22. Показов 891. Ответов 2
Метки нет Все метки)
(
Здравствуйте, столкнулся со следующей проблемой: на входе дробное число которое читается из потока посимвольно (состоит из 3 знаков 3.2 5.8 1.2 3.6 и тд) надо преобразовать во float. Например 3.6, 0.6 я получаю делением шестерки на 10, но получаю в итоге 3.599999. Как сего избежать?
0
|
|
03.03.2012, 10:22 | |
Ответы с готовыми решениями:
2
Преобразовать введенное с клавиатуры дробное число в формат расстояния в км и м Указать то дробное число. которое в двоичном представлении имеет наибольшее число единиц среди чисел
|
![]() 5827 / 3478 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
03.03.2012, 18:18 | 2 |
fenix117, частично, но не полностью, можно решить проблему с помощью типа с большей точностью (double), но в общем случае из-за особенностей представления типов с плавающей точкой в С/С++ проблема не решаема. Почему так происходит, можно почитать тут в разделе 5.
1
|
Модератор
![]() 8844 / 6624 / 902
Регистрация: 14.02.2011
Сообщений: 23,315
|
|
03.03.2012, 18:26 | 3 |
а никак
прочитай про плавающие числа дробные числа это степень 2(точнее деление на степень 2) 0.6 никак туда не попадает посему приближение даже в дубле ты получишь 0.599999999.... Добавлено через 2 минуты если нужно именно 0.6 то вводи свой класс (структуру) один инт целое число второй десятые так работает большинство бухгалтерских программ
1
|
03.03.2012, 18:26 | |
Помогаю со студенческими работами здесь
3
Преобразовать дробное число в денежный формат (рубли и копейки) используя int и frac. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |