In einem einfachen Taschenrechner mit mathematischen Funktionen ist der pow ()-Funktion scheint ungenaue Ergebnisse zu liefern, insbesondere für Potenzen. Die pow(5,2)-Operation gibt 24 zurück, was falsch ist.
Der Grund für diese Diskrepanz liegt in der Datentypkonvertierung. Die Funktion pow() im bereitgestellten Code gibt eine Gleitkommazahl zurück, das Ergebnis wird jedoch einer Ganzzahlvariablen (int-Antwort) zugewiesen. Infolgedessen wird der Dezimalteil der Zahl bei der Konvertierung abgeschnitten.
Um das korrekte Ergebnis zu erhalten, muss die Berechnung geändert werden, um Gleitkommazahlen zu verarbeiten Werte. Es gibt zwei vorgeschlagene Ansätze:
Rundung des Gleitkomma-Ergebnisses:
Durch Addition von 0,5 zum pow()-Ergebnis vor der Zuweisung Wenn Sie die Ganzzahlvariable verwenden, kann sie auf die nächste Ganzzahl gerundet werden. Diese Methode ist geeignet, wenn erwartet wird, dass das Ergebnis eine Ganzzahl ist.
int answer; answer = pow(number1,number2) + 0.5;
Verwenden einer nicht ganzzahligen Variablen für Gleitkommaergebnisse:
Wenn das Ergebnis nicht garantiert eine Ganzzahl ist, wird empfohlen, eine Double- oder Float-Variable anstelle einer Ganzzahl zu verwenden. Auf diese Weise bleibt der Dezimalteil der Zahl erhalten.
double answer; answer = pow(number1,number2);
Die Quadratwurzelfunktion im Code weist auch das Ergebnis zu auf eine Ganzzahlvariable, was nicht angemessen ist. Da Quadratwurzeln oft nicht ganzzahlig sind, wird empfohlen, eine Double- oder Float-Variable zum Speichern des Ergebnisses zu verwenden.
Das obige ist der detaillierte Inhalt vonWarum gibt meine pow(5,2)-Funktion 24 statt 25 zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!