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

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

Войти
Регистрация
Восстановить пароль
 
NaikoN
2 / 2 / 0
Регистрация: 01.05.2013
Сообщений: 109
#1

Подскажите пожалуйста с функцией ver 0.3 - C++

02.05.2013, 21:27. Просмотров 326. Ответов 7
Метки нет (Все метки)

Написал функцию которая возводит любое число в любую степень (в отрицательную тоже) и столкнулся с проблемой. при возведении 2^20 выводится 1.04858e+006 вместо 1048576, подскажите, что нужно исправить, что бы ответ выводился в десятичной форме.
P.S. До 1 миллиона все ответы выводтся нормально, а после беда((( Заранее благодарю за помощь.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>
#include<math.h>
using namespace std;
 double function (int x,int n)
{
    double fn;
    fn=pow(x,n);
    return fn;
}
int main()
{
    long int x,n;
    cin>>x>>n;
    cout<<function(x,n);
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2013, 21:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подскажите пожалуйста с функцией ver 0.3 (C++):

Подскажите пожалуйста с функцией - C++
Здравствуйте. Задали создать функцию в которую передается три аргумента. после чего вычисляется две формулы, допусти х=a*b*c и y=(a+b)*c....

Подскажите пожалуйста с функцией - C++
Хочу создать функцию, что бы она выводили минимум из 4 чисел, но она всегда выводит 1. Подскажите в чем моя ошибка, заранее спасибо. P.S....

Подскажите пожалуйста с функцией работы с Датой - C++
Ув. программисты помогите доделать программу. Суть такова. Считываются данные с файла в матрицу (тип данных Стринг) в каждом рядке...

подскажите с функцией - C++
вообщем, пишу программу для работы с матрицами, написал функцию, в которой задается размер,диапазон рандом. чисел и вообще генерируется...

Подскажите с функцией scanf() - C++
Я считываю данные из файла, данные целые числа, написал: while(scanf(&quot;%ld&quot;,&amp;x)) так как не известно когда закончатся данные, но...

Подскажите с функцией kbhit() - C++
Подскажите как сделать что-бы функция kbhit() реагировала на нажатие определенной клавиши, например клавишу &quot;q&quot;. Вот пример код, хочу что...

7
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
02.05.2013, 21:33 #2
NaikoN,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
 
 double function (int x,int n)
{
    double fn;
    fn=pow((double)x,n);
    return fn;
}
 
int main()
{
    long int x,n;
    cin>>x>>n;
    cout.setf(ios::fixed,ios::floatfield);
    cout<<function(x,n);
    return 0;
}
0
NaikoN
2 / 2 / 0
Регистрация: 01.05.2013
Сообщений: 109
02.05.2013, 21:50  [ТС] #3
yoghurt92, Спасибо, но как-то можно реализовать, что бы он выводил без нулей в конце, т. е. 2^20 будет 1048576.00000, а должно быть 1048576. Я думал поставить точность, но тогда он не верно выводит дробный результат. Заранее спасибо.
P.S. Из-за чего выводятся числа не в десятичной системе если ответ превышает миллион??
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
02.05.2013, 22:22 #4
NaikoN, система десятичная, просто формат научный.
0
NaikoN
2 / 2 / 0
Регистрация: 01.05.2013
Сообщений: 109
02.05.2013, 22:51  [ТС] #5
Tulosba, А почему вывод производится в этом научном формате???
0
diagon
Higher
1930 / 1196 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
02.05.2013, 22:59 #6
Цитата Сообщение от NaikoN Посмотреть сообщение
Tulosba, А почему вывод производится в этом научном формате???
Потому что его проще читать (это особенно заметно на больших числах).
В данном случае исправить достаточно просто - изменить тип на целочисленный и заменить pow(2, 20) на 1 << 20.
Если позарез нужны даблы, то если числа всегда целые, смотрите в сторону setprecision, иначе перегоняйте число в строку и отрезайте у него лишние нули с конца. Хотя должно быть более красивое решение, я верю в это.
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
02.05.2013, 23:18 #7
Цитата Сообщение от diagon Посмотреть сообщение
Хотя должно быть более красивое решение, я верю в это.
Хотелось бы иметь что-то типа регулируемого defaultfloat, но вероятно без ручной проверки того что double равен целому не обойтись.
0
NaikoN
2 / 2 / 0
Регистрация: 01.05.2013
Сообщений: 109
04.05.2013, 08:47  [ТС] #8
Tulosba, diagon, СДелал с помощью setprecision, теперь выводит все ок. Спасибо!
0
04.05.2013, 08:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.05.2013, 08:47
Привет! Вот еще темы с ответами:

Проблемка с функцией gets(). Подскажите - C++
Проблема следующего характера: при первом проходе в цикле(i=0) функция store() работает корректно. При шаге i=1 и дальше строка...

структуры подскажите с функцией - C++
Ребята умы програмирования подскажите с функцией долбаюсь не могу никак дойти до ума задача такая: Предметная область - бухгалтерия...

Подскажите как воспользоваться функцией. - C++
Здрасте. В книжке Джесс Либерти &quot;Освой самостоятельно С++ за 21 день&quot;, 3е издание, на странице 159 есть пример программы работы с классами....

Проблемма с функцией,подскажите что не так - C++
#include &quot;stdafx.h&quot; #include&lt;iostream&gt; #include &lt;clocale&gt; #include &lt;cmath&gt; using namespace std; void input (double x,...


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

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

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