Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

Преобразовать введенное с клавиатуры дробное число в формат расстояния в км и м - C++
Например Введите дробное число -> 11.25 11.25 км — это 11 км 250 метров #include <iostream> using namespace std; int main(){ ...

Как преобразовать число float в int без потери данных? - C++
Здравствуйте, форумчане. Столкнулась с такой проблемой: для работы программы требуется целое число, но вводится число типа float. Так вот,...

Преобразовать 2 числа int в 1 число float(double) | double int1.int2 - C++
Всем привет. Изучая азы C++, столкнулся с такой проблемой. Есть два значения типа int, их необходимо преобразовать в одно значение типа...

Дробное число - C++
Добрый день! Можно ли ввести такое деление чтоб число выводилось (хранилось) в дробном виде, перемножение в дробном виде и т.д. Думаю...

Не отображается дробное число в С++ - C++
Почему я ввёл 7, 481 галлонов, оно посчитало как 7, 481, а написало 7? #include <iostream> using namespace std; int main() { ...

printf - дробное число - C++
Почему с помощью сout нормально выводится дробное число, а пишу printf("%4.f",z) вывоит целую часть, причем округляет

2
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
03.03.2012, 18:18 #2
fenix117, частично, но не полностью, можно решить проблему с помощью типа с большей точностью (double), но в общем случае из-за особенностей представления типов с плавающей точкой в С/С++ проблема не решаема. Почему так происходит, можно почитать тут в разделе 5.
1
ValeryS
Модератор
6707 / 5116 / 482
Регистрация: 14.02.2011
Сообщений: 17,191
03.03.2012, 18:26 #3
Цитата Сообщение от fenix117 Посмотреть сообщение
0.6 я получаю делением шестерки на 10, но получаю в итоге 3.599999.
а никак
прочитай про плавающие числа
дробные числа это степень 2(точнее деление на степень 2)
0.6 никак туда не попадает посему приближение даже в дубле ты получишь
0.599999999....

Добавлено через 2 минуты
если нужно именно 0.6
то вводи свой класс (структуру)
один инт целое число второй десятые
так работает большинство бухгалтерских программ
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.03.2012, 18:26
Привет! Вот еще темы с ответами:

Строка дробное число - C++
Написать программу, которая проверяет, является ли введенная с клавиатуры строка целым числом. Здравствуйте помогите разрбраться в...

Поле first - целое число, длительность телефонного разговора в минутах; поле second - дробное число, стоимость одной минуты в гривнах - C++
Поле first - целое число, длительность телефонного разговора в минутах; поле second - дробное число, стоимость одной минуты в гривнах....

Преобразовать строку в float - C++
Итак у меня есть переменная Char. В ней записано '5.2'. И есть переменная float. Как мне поместить 5.2 в переменную типа float ? Типа...

Преобразовать из float в string - C++
Скажите, пжл, какие существуют ф-ии для конвертации из float в string?


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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