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

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

Войти
Регистрация
Восстановить пароль
 
Керра
1276 / 444 / 45
Регистрация: 24.08.2011
Сообщений: 2,133
#1

Ошибка в преобразовании строки в double - C++

25.04.2014, 17:56. Просмотров 444. Ответов 5
Метки нет (Все метки)

Почему вот тут все правильно, то есть 5.5 остается 5.5:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
void main( int ArgC, char *ArgV[ ] )
{
    char *str = new char[20];
    gets(str);
    _CRT_DOUBLE crt;
    _atodbl(&crt,str);
    std::cout << crt.x << std::endl;
    delete [] str;
    system("pause");
}
А вот тут 5.5 превращается в 5:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
_CRT_DOUBLE for_radius;
    double vradius;
    cout << "ArgV[4]: " << ArgV[4] << endl;
    if ( _atodbl(&for_radius,ArgV[4]) != 0 )
    {
        cerr << "Ошибка № 12. В командной строке "
        "недопустимый формат аргумента командной "
        "строки, задающего радиус.\n";
        vradius = 0;
    }
    else
        vradius = for_radius.x;
    cout << "for_radius.x: " << for_radius.x << endl;
    cout << "vradius: " << vradius << endl;
Какая между ними разница?

Добавлено через 43 минуты
актуально
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2014, 17:56     Ошибка в преобразовании строки в double
Посмотрите здесь:

Ошибка: error LNK2001: unresolved external symbol "double __cdecl Akk(double,double,double)" - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; double Akk(double x, double y, double z); int main() { int a, b, c; ...

Ошибка: невозможно преобразовать 'double' в 'double' - C++
Задача алгоритма, мы вводим матрицу А и В матрицу А раскладываем в LU разложение и с его помощью находим обратную матрицу, а после находим...

Ошибка в преобразовании типов - C++
Здравствуйте. Я написал программу, которая преобразует int в char через указатель. Программа работает, но криво. Например при вводе числа...

Ошибка при преобразовании int в fpos_t - C++
Всем привет, ругается на строчке приравнивания int Start_Pos_UnSorted_File; fpos_t position; position = Start_Pos_UnSorted_File; ...

Шаблон класса complex. Ошибка undefined reference to `complex<double>::SetRe(double)' - C++
Есть такой файл complex.h #ifndef COMPLEX_H #define COMPLEX_H template&lt;class Type&gt; class complex{ public: Type Re; Type...

В функции GetRandChar ошибка в преобразовании char в wchar_t - C++
Ошибка в заставе заключается в преобразовании char в wchar_t. Вот почему он жалуется на GetRandChar, я не пойм. Как исправить? ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
13063 / 7326 / 817
Регистрация: 27.09.2012
Сообщений: 18,085
Записей в блоге: 3
Завершенные тесты: 1
25.04.2014, 20:14     Ошибка в преобразовании строки в double #2
Какие параметры подаете в main?
Ошибка в преобразовании строки в double
Керра
1276 / 444 / 45
Регистрация: 24.08.2011
Сообщений: 2,133
26.04.2014, 08:38  [ТС]     Ошибка в преобразовании строки в double #3
Адреса программы, входного выходного файлов, и два числа.
Я решила проблему - перенесла этот фрагмент кода в начало программы. Хотелось бы знать, как это влияет на процесс, ведь этот параметр, да и остальные, не менялись.
Croessmah
Модератор
Эксперт CЭксперт С++
13063 / 7326 / 817
Регистрация: 27.09.2012
Сообщений: 18,085
Записей в блоге: 3
Завершенные тесты: 1
26.04.2014, 20:00     Ошибка в преобразовании строки в double #4
Цитата Сообщение от Керра Посмотреть сообщение
Хотелось бы знать, как это влияет на процесс, ведь этот параметр, да и остальные, не менялись.
ну так код покажите, мы же не видим что у Вас написано.
Могу предположить, что устанавливаете локаль с другим десятичным разделителем.
-=ЮрА=-
Заблокирован
Автор FAQ
26.04.2014, 21:26     Ошибка в преобразовании строки в double #5
Цитата Сообщение от Керра Посмотреть сообщение
_CRT_DOUBLE crt;
* * _atodbl(&crt,str);
- что за глупое преобразование?(зачем привязываться к платформе)
кто мешает произвести привычный Си либо С++ ввод самого дабла
C
1
scanf("%lf", &param);
C++
1
cin>>param;
либо если преообразуем из строки
C
1
sscanf(str, "%lf", &param);
C++
1
2
stringstream ss(str);
double param;ss>>param;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.04.2014, 09:30     Ошибка в преобразовании строки в double
Еще ссылки по теме:

Ошибка с комплексными числами при дискретном преобразовании Фурье - C++
пытаюсь реализовать дискретное преобразование фурье (не быстрое) подскажить в чем ошибка в коде ругается на...

Ошибка этапа исполнения при преобразовании символов в верхний регистр - C++
Доброго времени суток, уважаемые пользователи CyberForum.ru! По какой то причине падает программа, прощу Вашей помощи :) void main()...

Ошибка Error LNK1123: сбой при преобразовании в COFF: файл недопустим или поврежден - C++
Вот задание. Для произвольного текста (Взятого из файла), содержащего не более 10 строк, в каждой строке не более 80 символов,...

Ошибка error LNK1123: сбой при преобразовании в COFF: файл недопустим или поврежден - C++
Объясните, пожалуйста, как исправить эту проблему? У меня Visual Studio 2010 Ultimate

Почему мы пишем double x (double y)? а не через запятую double x,y - C++
почему мы пишем double x (double y)? а не через запятую double x,y

Из-за чего появилась ошибка "сбой при преобразовании в COFF"? - C++
Ошибка 1 error LNK1123: сбой при преобразовании в COFF: файл недопустим или поврежден Как исправить???


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

Или воспользуйтесь поиском по форуму:
Керра
1276 / 444 / 45
Регистрация: 24.08.2011
Сообщений: 2,133
27.04.2014, 09:30  [ТС]     Ошибка в преобразовании строки в double #6
-=ЮрА=-, это заказ, человеку сказали именно таким вот способом сделать.
Yandex
Объявления
27.04.2014, 09:30     Ошибка в преобразовании строки в double
Ответ Создать тему
Опции темы

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