Mehrdeutige pow () -Funktion

7

Ich versuche einen einfachen Aufruf der Funktion pow() von math.h zu machen, ähnlich wie ..

%Vor%

aber Visual Studio sagt, es ist ein Fehler

%Vor%

Ich dachte ich hätte das Format float pow(float, float) .

    
Dr Deo 30.06.2010, 18:40
quelle

6 Antworten

18

In der Zeile:

%Vor%

w ist ein Float und 0.5 ist ein double . Sie können stattdessen 0.5f verwenden.

    
Cogwheel 30.06.2010, 18:41
quelle
4

Mathematische Funktionen wie pow (), sin () usw. werden in modernen C ++ - Implementierungen templatisiert. Der Grund dafür ist, dass unklar ist, was Sie tun möchten. Wenn Sie beide Argumente als gleich senden, möchten Sie vermutlich, dass die Berechnung mit dieser spezifischen Genauigkeit ausgeführt wird. Wenn sie unterschiedlich sind, möchten Sie dann mit der höheren Genauigkeit rechnen und den Operanden mit niedrigerer Genauigkeit erhöhen, oder möchten Sie die höhere Genauigkeit auf niedrigere Genauigkeit reduzieren und dann die Berechnung mit geringerer Genauigkeit durchführen. d. h.

%Vor%     
Andrew Selle 30.06.2010 18:59
quelle
2

Versuchen Sie es v=pow(w,0.5f);

    
NG. 30.06.2010 18:42
quelle
2

0.5 ist vom Typ double. Probieren Sie

aus %Vor%     
esseff 30.06.2010 18:43
quelle
1

Hey, hast du 0.5f probiert?

    
Crazy Eddie 30.06.2010 18:51
quelle
0

Zusätzlich zu allen anderen Methoden, die bereits in den anderen Antworten angegeben wurden, können Sie das Template-Argument immer explizit angeben:

%Vor%     
Kirill V. Lyadvinsky 30.06.2010 19:42
quelle

Tags und Links