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

Как поставить степень в C++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.90
4atty
 Аватар для 4atty
45 / 45 / 1
Регистрация: 09.06.2011
Сообщений: 117
06.09.2012, 23:00     Как поставить степень в C++ #1
Вечер добрый,
создал float a и double b
теперь хочу задать им значения,
a = -0.00330044982
b = 0.731 x 10 в -3408 степени.

Как это реализовать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soundtrack
 Аватар для soundtrack
41 / 41 / 4
Регистрация: 15.12.2011
Сообщений: 131
06.09.2012, 23:28     Как поставить степень в C++ #2
Цитата Сообщение от 4atty Посмотреть сообщение
double b
Тип double в с++ имеет характеристики: 8Бит, 64Байта, 1.7E-308 Min 1.7E+308 Max. Поэтому в него невозможно "запихнуть" число с такой точностью. Наверное нужно будет использовать long double.

Может как-то так?
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
using namespace std;
 
void main()
{
    float a = -0.00330044982;
    long double b = 0.731E-3408;
    cout.precision(10);
    cout<<"a="<<a<<"\nb="<<b<<endl;
    system("pause");
}
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
06.09.2012, 23:32     Как поставить степень в C++ #3
soundtrack, b так не посчитать. Тут нужен нестандартный способ, возможно, с использованием массива для запоминания цифр ответа.
-=ЮрА=-
Заблокирован
Автор FAQ
06.09.2012, 23:35     Как поставить степень в C++ #4
Цитата Сообщение от 4atty Посмотреть сообщение
-3408
- сильно большой(по модулю) показатель стапени!Дабл тоже не безразмерный и по памяти - максимум степени 308 (плюс минус, не важно)
Вот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iomanip>
#include <iostream>
using namespace std;
 
int main()
{
    float  a = -3.30044982E-3;
    double b = 0.731E-34;
    cout<<setprecision(16)<<a<<endl;
    cout<<setprecision(16)<<b<<endl;
    return 0;
}
PS:Думаю лишним не будет Бесконечная точность при делении
Миниатюры
Как поставить степень в C++  
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
06.09.2012, 23:39     Как поставить степень в C++ #5
Цитата Сообщение от BumerangSP Посмотреть сообщение
Тут нужен нестандартный способ, возможно, с использованием массива для запоминания цифр ответа.
заведи свой тип
в одном поле мантиса
в другом порядок(экспонента)
C++
1
2
3
4
5
class MyDouble
{
int mant;
int exp;
}
и реализуй в нем все математические операции
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
07.09.2012, 00:46     Как поставить степень в C++ #6
8Бит, 64Байта

float a = -0.00330044982;
Формат одинарной точности не хранит столько знаков.
Yandex
Объявления
07.09.2012, 00:46     Как поставить степень в C++
Ответ Создать тему
Опции темы

Текущее время: 00:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru