potenzieren ist einfach. warum bei mir net???
-
hi, habe jetzt 5000 sites über google konsultiert und bin zu dem theoretischen schluss gekommen, dass in c++ potenzieren (z. B. 10 hoch 4 = 10000 ) eigentlich ein mücken schiss sein muss.
habe daher folgendes prog geschrieben:
# include <iostream> # include <cmath> using namespace std; int main() { int a; cout << " Bitte a eingeben!\n"; cin >> a; int b; cout << " Bitte b eingeben!\n"; cin >> b; double c = std::pow(a,b); cout << c; return 0; }blöde frage: warum macht borland c++ builder x zur compile zeit den fehler "file1.cpp": E2015 Mehrdeutigkeit zwischen 'std::pow(long double,int)' und 'std::pow(double,int)' in Funktion main() in Zeile 15??
wie ist der code richtdig???
lg kasimirle
-
Du musst a vorher nach double, oder long double casten.
z.B.:double c = std::pow( (double)a,b);
-
ProgChild schrieb:
Du musst a vorher nach double, oder long double casten.
z.B.:double c = std::pow( (double)a,b);er möchte in c++ coden,
bleib bei static_cast, nicht c und cpp vermischen
-
alternativ auch einfach a als double deklarieren dann macht auch der ergebniss typ als double sinn.
-
Hier mal noch die Variante, die ich bevorzuge.
double c = std::pow( double(a),b);
-
ProgChild schrieb:
Du musst a vorher nach double, oder long double casten.
z.B.:double c = std::pow( (double)a,b);hi, was issen casten??
lg kasimirle
-
Kurz: explizite Typumwandlung
Technisch: Dadurch, daß du das "(double)" vor der Variablen angibst, sagst du dem Programm, daß es den Wert von 'a' als Double-Zahl interpretieren soll.
Und wenn du es ausführlicher willst: Casting
-
er könnte auch einfach die zu potentierente Variable als double deklarieren.

-
std::cout << std::pow(static_cast<double>(a), b) << std::endl;da spart man sich 1. c und zweitens ist es nen c++ und kein c-style-cast ...
#include <iostream> #include <cmath> int main() { std::cout << "Potenzkalkulator V1.0" << std::endl; double number = 0.0; std::cout << "x: " << std::flush; std::cin >> number; int pow = 0; std::cout << "Potenz: " << std::flush; std::cin >> pow; std::cout << std::pow(number, pow) << std::endl; return 0; }Sowas wäre doch nett.