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

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

Войти
Регистрация
Восстановить пароль
 
amatorIP
3 / 3 / 0
Регистрация: 22.07.2010
Сообщений: 141
#1

Преобразование типов данных - C++

30.12.2010, 21:59. Просмотров 846. Ответов 4
Метки нет (Все метки)

Подскажите как преобразовать double 0.00000000000023 в char 2.3E-13 и обратно?
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2010, 21:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Преобразование типов данных (C++):

Преобразование типов данных - C++
Как преобразовать тип данных который берется с ячейки Excel в строчный тип, чтобы потом это вывести в label? у меня такой код ...

Преобразование типов данных - C++
Здравствуйте! Вот хотел уточнить одну штуку. Мне было сказано одним авторитетным человек, что тип переменной поменять нельзя. И я...

Преобразование типов данных - C++
Доброго времени суток, решаю задачу из Лафоре, в этом куске кода мне надо получить значение double, очевидно, что оно будет не целым,...

Преобразование типов данных - C++
Здравствуйте, програмеры! :) Возникла такая потребность: преобразовать тип данных с вводных (string, или char) в созданные при помощи enum....

Преобразование типов данных в классах - C++
если например есть такой код: class TIME { int a; } TIME object; object = 10;

Явное преобразование типов данных(объясните разницу)! - C++
В чём разница между этим: cout << "float(int_value15) / int_value2 = " << float(int_value15) / int_value2 << endl << "15 /...

4
easybudda
Модератор
Эксперт CЭксперт С++
9694 / 5644 / 962
Регистрация: 25.07.2009
Сообщений: 10,848
31.12.2010, 02:02 #2
amatorIP, в десятичном представлении тип double обеспечивает точность до 10 цифр, а так вот:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <stdlib.h>
 
int main(void){
    double d1, d2;
    char buf[BUFSIZ];
    
    d1 = 0.00000000000023;
    sprintf(buf, "%e", d1);
    printf("As string: %s\n", buf);
    d2 = strtod(buf, NULL);
    printf("As double: %e\n", d2);
    
    exit(0);
}
1
Минич
66 / 66 / 3
Регистрация: 26.11.2010
Сообщений: 123
31.12.2010, 02:10 #3
char - это целочисленный тип данных размером в 1 байт, используется в основном для хранения одного символа, например, '\n' или 'o'.
если вас интересует ввод/вывод данных в консоль, то экспоненциальное значения, типа 1.125E2, считается нормальным, как и 112.5!
C++
1
2
double d;
cin >> d;
А вот с форматированным выводом можно использовать функцию printf() библиотеки <cstdio>
C++
1
printf ("floats: %4.2f %+.0e %E \n", 3.1416, 3.1416, 3.1416);
Вывод форматированных данных
1
easybudda
Модератор
Эксперт CЭксперт С++
9694 / 5644 / 962
Регистрация: 25.07.2009
Сообщений: 10,848
31.12.2010, 02:25 #4
Цитата Сообщение от Минич Посмотреть сообщение
А вот с форматированным выводом можно использовать функцию printf() библиотеки <cstdio>
а std::scientific из iomanip использовать что мешает?
C++
1
2
3
4
5
6
7
#include <iostream>
#include <iomanip>
    
int main(){
    std::cout << std::scientific << 0.00000000000023 << std::endl;
    return 0;
}
0
Минич
66 / 66 / 3
Регистрация: 26.11.2010
Сообщений: 123
31.12.2010, 03:32 #5
easybudda, не знай, возможно мы только учимся
std::fixed из iomanip нужно было упомянуть
вот что я тоже успел нарыскать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using std::cout;
using std::endl;
using std::ios;
int main()
{
   double x = .001234567, y = 1.946e9;
   cout << "Displayed in default format:\n" << x << "\t" << y << "\n";
   cout.setf( ios::scientific, ios::floatfield );
   cout << "Displayed in scientific format:\n" << x << "\t" << y << "\n";
   cout.unsetf( ios::scientific );
   cout << "Displayed in default format after unsetf:\n" << x << "\t" << y << "\n";
   cout.setf( ios::fixed, ios::floatfield );
   cout << "Displayed in fixed format:\n"<< x << "\t" << y << endl;
   system("pause");
   return 0;
}
Добавлено через 13 минут
Статья: Потоки ввода/вывода
0
31.12.2010, 03:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.12.2010, 03:32
Привет! Вот еще темы с ответами:

Преобразование типов - C++
Цель копировать из одного объекта в другой инофрмацию, типы разные, поэтому приходится приводитьTypeA a; TypeB b; a = *(a*)&amp;b; А вот...

Преобразование типов. - C++
Подскажите как правильно преобразовать типы в следующем фрагменте: int i; i=GetKeyboardType(0); reinterpret_cast &lt;char&gt; (i); ...

Преобразование типов. - C++
Всем привет. Суть вопроса - ответ программы должен содержать только два знака после запятой. #include &lt;iostream&gt; using namespace...

Преобразование типов - C++
С учебника переписал код на применение структур, но возникла проблема с преобразованием типов. Вот код проги: #include &quot;stdafx.h&quot; ...


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

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

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