Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
The_bolT
70 / 70 / 12
Регистрация: 22.01.2013
Сообщений: 231
#1

char в double

13.02.2013, 15:44. Просмотров 1676. Ответов 13
Метки нет (Все метки)

Как превратить char в double? Я хочу написать программу в которой вводится два числа и в результате выводится число типа double. Думал написать вот так, но в конце программы выбивает ошибку.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    char a[1],b[1];
    char str[4]="";
    cin>>a>>b;
    strcat(str,a);
    strcat(str,".");
    strcat(str,b);
    double c;
    c = atof(str);
    cout<<c;
    system("pause>0");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2013, 15:44
Ответы с готовыми решениями:

Ошибки error C2296: -: недопустимо, левый операнд имеет тип "double (__cdecl *)(double,double,double
Думаю из-за polp #include&lt;iostream&gt; #include&lt;cmath&gt; #include&lt;cstdlib&gt;...

Из Char в Double
Здравствуйте, не подскажет ли кто , как можно массив char переделать в double...

Перевод из double в char
Добрый день !!! подскажите как перевести из double в char .

Перевод double в char
Необходимо перевести число типa double, к примеру а=0.1234 В char... Все это...

Реализация double to char*
Здравствуйте, помогите пожалуйста с реализацией функции double to char*. У...

13
Байт
Эксперт C
17841 / 11868 / 2467
Регистрация: 24.12.2010
Сообщений: 23,859
13.02.2013, 16:21 #2
#include <stdlib.h> ???
0
ITcrusader
Эксперт С++
177 / 163 / 21
Регистрация: 12.02.2013
Сообщений: 410
13.02.2013, 16:23 #3
Жуть, а можно для начала попытаться прояснить, зачем нужно вводить 2 целых числа, конвертировать их в строки, конкатенировать, потом преобразовывать в вещественное и потом снова выводить?! Может, есть решение проще?
0
Байт
Эксперт C
17841 / 11868 / 2467
Регистрация: 24.12.2010
Сообщений: 23,859
13.02.2013, 16:23 #4
или #include <math.h>
Такое ощущение, что функция atof не определена. Она в разных компиляторах определяется в разных местах.
А еще проще
double atof(const char *s);
0
ITcrusader
Эксперт С++
177 / 163 / 21
Регистрация: 12.02.2013
Сообщений: 410
13.02.2013, 16:27 #5
Да эта жесть запускается даже и как-то работает А в конце валится)
0
The_bolT
70 / 70 / 12
Регистрация: 22.01.2013
Сообщений: 231
13.02.2013, 16:58  [ТС] #6
Возможно и есть решение лучше. но я не ищу легких путей
А по сути мне нужно ввести два int числа и чтобы из них получилось float,например:
input:
2 5
output:
2.5

intput:
-6 9
output:
-6.9
0
behollder
47 / 28 / 12
Регистрация: 23.01.2013
Сообщений: 125
Завершенные тесты: 1
13.02.2013, 17:14 #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
using namespace std;
 
int main()
{
    double a, b;
    cin >> a >> b;
    while(true)
    {
        if(b < 1)
        {
            break;
        }
        b *= .1;
    }
    cout << "\n" << a + b;
    cin.get();
    return 0;
}
Добавлено через 10 минут
Прошлый код не работает с отрицательными. Вот такой костыль решает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{
    double a, b;
    cin >> a >> b;
    bool someflag = false;
    if(a < 0)
    {
        b = abs(b);
        a = abs(a);
        someflag = true;
    }
    while(true)
    {
        if(b < 1)
        {
            break;
        }
        b *= .1;
    }
    if(someflag)
    {
        cout << (a + b) * -1;
    } else cout << "\n" << a + b;
    cin.get();
    return 0;
}
0
The_bolT
70 / 70 / 12
Регистрация: 22.01.2013
Сообщений: 231
13.02.2013, 17:14  [ТС] #8
Ваша программа что-то не работает. И мне нужно чтобы числа a b были int a, b; а не double a, b;
0
MrGrig
177 / 160 / 38
Регистрация: 08.10.2012
Сообщений: 422
13.02.2013, 17:21 #9
C++
1
2
3
4
5
int a,b;
double c;
cin>>a>>b;
c=((double)a)+((double)b)/10;
//есть пару нюансов число состоит из цифр (0-9), соответственно нет проверки а и b, что это цыфры
0
behollder
47 / 28 / 12
Регистрация: 23.01.2013
Сообщений: 125
Завершенные тесты: 1
13.02.2013, 17:26 #10
Цитата Сообщение от The_bolT Посмотреть сообщение
Ваша программа что-то не работает. И мне нужно чтобы числа a b были int a, b; а не double a, b;
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{
    int a, b;
    double s;
    cin >> a >> b;
    bool someflag = false;
    if(a < 0)
    {
        b = abs(b);
        a = abs(a);
        someflag = true;
    }
    s = b;
    while(true)
    {
        if(s < 1)
        {
            break;
        }
        s *= .1;
    }
    s += a;
    if(someflag)
    {
        cout << s * -1;
    } else cout << "\n" << s;
    cin.get();
    return 0;
}
0
Schizorb
510 / 462 / 82
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
Завершенные тесты: 1
13.02.2013, 17:32 #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
double ints_to_double(int a, int b)
{
    double frac = (b < 0 ? -b : b);
    
    while((frac /=10) >= 1);
 
    return a + (a < 0 ? -frac : frac);
}
 
int main()
{
    int a, b;
 
    std::cin >> a >> b;
    std::cout << std::fixed << ints_to_double(a, b);
    
    return 0;
}
0
ITcrusader
Эксперт С++
177 / 163 / 21
Регистрация: 12.02.2013
Сообщений: 410
13.02.2013, 20:12 #12
Цитата Сообщение от The_bolT Посмотреть сообщение
но я не ищу легких путей
Старина, а следовало бы)))
0
booker
23 / 23 / 5
Регистрация: 21.11.2012
Сообщений: 106
13.02.2013, 21:32 #13
C++
1
char str[4]="";
это что?
0
The_bolT
70 / 70 / 12
Регистрация: 22.01.2013
Сообщений: 231
13.02.2013, 22:14  [ТС] #14
Это чтобы била пустая строка. Когда будет исполниться strcat(str,a); то первый элемент будет не этот что мы вставляем, а из памяти компьютера.
0
13.02.2013, 22:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2013, 22:14

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

Конструктор double to char
этот конструктор делает double to char. код просто ужасный. как лучше написать?...

Преобразования char в double
Здравствуйте, я использую visual studio 15 и при компиляции следующего кода...


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

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

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