+ 1
Подскажите в чем проблема при i = 2 и 4
6 odpowiedzi
+ 14
потому что функция функции pow - это «двойное» число, а не «целое число». поэтому вы видели 99 и 9999 только потому, что двойная точность неявно преобразована в int и потеряла свою точность.
+ 13
это то, чего ты хочешь?
#include <iostream>
#include <math.h>
using namespace std;
int main() {
int x;
for(int i=1; i<=5; i++){
cout << i << ":";
cout << " 10 ^ " << i << " = ";
x = pow(10, i);
cout << x << endl;
}
return 0;
}
вывод
1: 10 ^ 1 = 10
2: 10 ^ 2 = 100
3: 10 ^ 3 = 1000
4: 10 ^ 4 = 10000
5: 10 ^ 5 = 100000
+ 13
Вам нужно изменить «int x» на «double x»
+ 12
всегда пожалуйста, друг мой.
+ 1
Нет, мне интересно почему когда я сразу вывожу значение pow(10, i), все выводится как надо, а когда я pow(10, i) сохраняю в x, а потом вывожу x, при i=2 - получаю 99 а не 100, при i=4 - 9999 а не 10000.
+ 1
Респект! К тому, чтобы изменить тип я уже пришёл методом проб и ошибок, а вот причину так и не выяснил) Благодарю!