Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
fenix117
8 / 8 / 1
Регистрация: 16.03.2011
Сообщений: 249
#1

На входе дробное число, которое надо преобразовать во float - C++

03.03.2012, 10:22. Просмотров 551. Ответов 2
Метки нет (Все метки)

Здравствуйте, столкнулся со следующей проблемой: на входе дробное число которое читается из потока посимвольно (состоит из 3 знаков 3.2 5.8 1.2 3.6 и тд) надо преобразовать во float. Например 3.6, 0.6 я получаю делением шестерки на 10, но получаю в итоге 3.599999. Как сего избежать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2012, 10:22     На входе дробное число, которое надо преобразовать во float
Посмотрите здесь:

Преобразовать строку в float C++
printf - дробное число C++
Поле first - целое число, длительность телефонного разговора в минутах; поле second - дробное число, стоимость одной минуты в гривнах C++
Строка дробное число C++
Дробное число C++
Преобразовать string в float C++
C++ Не отображается дробное число в С++
C++ Преобразовать указатель в float
Преобразовать 2 числа int в 1 число float(double) | double int1.int2 C++
C++ Как преобразовать число float в int без потери данных?
Преобразовать введенное с клавиатуры дробное число в формат расстояния в км и м C++
C++ Преобразовать из float в string

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
5767 / 3416 / 255
Регистрация: 08.02.2010
Сообщений: 7,441
03.03.2012, 18:18     На входе дробное число, которое надо преобразовать во float #2
fenix117, частично, но не полностью, можно решить проблему с помощью типа с большей точностью (double), но в общем случае из-за особенностей представления типов с плавающей точкой в С/С++ проблема не решаема. Почему так происходит, можно почитать тут в разделе 5.
ValeryS
Модератор
6511 / 4977 / 460
Регистрация: 14.02.2011
Сообщений: 16,484
03.03.2012, 18:26     На входе дробное число, которое надо преобразовать во float #3
Цитата Сообщение от fenix117 Посмотреть сообщение
0.6 я получаю делением шестерки на 10, но получаю в итоге 3.599999.
а никак
прочитай про плавающие числа
дробные числа это степень 2(точнее деление на степень 2)
0.6 никак туда не попадает посему приближение даже в дубле ты получишь
0.599999999....

Добавлено через 2 минуты
если нужно именно 0.6
то вводи свой класс (структуру)
один инт целое число второй десятые
так работает большинство бухгалтерских программ
Yandex
Объявления
03.03.2012, 18:26     На входе дробное число, которое надо преобразовать во float
Ответ Создать тему
Опции темы

Текущее время: 07:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru