Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/21: Рейтинг темы: голосов - 21, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 04.08.2013
Сообщений: 9
1

Преобразование char* в double (функции atof и strtod)

09.05.2015, 22:48. Показов 3802. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер и с праздником!!!
Возник вопрос с функциями atof и strtod. А точнее проблемы с округлением (пример: вводим с консоли "0,3" , а уже x будет значение "0.29999999999999999"). Кто с этим уже сталкивался? И как с этим бороться ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
 const int MAXSIZE = 100;
int main()
{
    setlocale(LC_ALL, "Russian");   
 
    char buffer[100];
    double h(1.0);
    while(true)
    {
        std::cout<<std::endl<<"enter buffer: ";
        std::cin.getline(buffer, 100);
        double x = atof(buffer);
        h -= x;
        std::cout<<x<<std::endl;
        std::cout<<h;
    }
    system("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.05.2015, 22:48
Ответы с готовыми решениями:

Преобразование числа из Edit с помощью функции atof
Есть Edit1 в котором записано число, которое мне нужно преобразовать через функцию atof. Мои...

Преобразование из char в double
Как обычно зашел задать тупой вопрос: плз., скажите как из char сделать double если...

Преобразование long double в char
Вернемся к обсуждению денежных строк из упражнения 6. Напишите ме- од ldtoms() для преобразования...

Преобразование указателя из char в int и double
указатель sadr является типом char мне нужно перопределить его на типы на int и double int a;...

1
Модератор
Эксперт по электронике
8909 / 6678 / 918
Регистрация: 14.02.2011
Сообщений: 23,524
09.05.2015, 22:55 2
Цитата Сообщение от Alten_fritz Посмотреть сообщение
пример: вводим с консоли "0,3" , а уже x будет значение "0.29999999999999999"). Кто с этим уже сталкивался? И как с этим бороться ?
принять как должное
не все конечные десятичные дроби превращаются в конечные двоичные
бороться округлением
здесь куча таких тем
а у Evg даже блог на эту тему есть
https://www.cyberforum.ru/blogs/18334/blog88.html
1
09.05.2015, 22:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.05.2015, 22:55
Помогаю со студенческими работами здесь

Преобразование типов. 3 char в 1 double int, и наоборот.
Здравствуйте, помогите пожалуйста решить следующую задачу. По UART от ПК принимаются пакеты с...

Преобразование int и double в char без использования sprintf()
Здравствуйте, ув форумчани! Подскажите пожалуйста, какими инструментами С++ можно преобразовать...

Преобразование double во время (char) год, месяц, день, часы секунды, минуты
Здравствуйте, форумчане. Подскажите как получить текущее время, сохранить его в double, а потом...

Из String в Double без atof
Здравствуйте. Задача: перевести последовательность цифр и знаков &quot;-&quot;, &quot;.&quot; и &quot;e&quot; из формата строки в...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru