Math.Pow nimmt einen ganzzahligen Wert an

8

Von Ссылка

%Vor%

Math.Pow nimmt Doppel als Argumente, aber hier sind wir gerade dabei.

Frage: Besteht die Gefahr von Gleitkomma-Rundungsfehlern, wenn es eine implizite Konvertierung in Doppelhappen gibt?

Wenn ja, ist es besser, etwas wie:

zu verwenden %Vor%     
Dave Mateer 25.06.2012, 20:17
quelle

4 Antworten

3

Ja, es gibt eine implizite Umwandlung in doppeltes Happening, und ja, es besteht die Möglichkeit, dass Gleitkomma-Rundungsfehler auftreten.

Ob es sich lohnt, die von Ihnen vorgeschlagene alternative Methode zu verwenden, hängt von der Anwendung ab. Ist ein Fließkomma-Rundungsfehler völlig inakzeptabel? Werden Sie Zahlen verwenden, die in int32 passen (es braucht nicht viel, bis die Kräfte überlaufen)?

    
Servy 25.06.2012, 20:20
quelle
5

Nein, ein Rundungsfehler aufgrund der Konvertierung in double ist nicht möglich. double kann genau alle ganzen Zahlen repräsentieren, die in die Domäne der Potenzfunktion fallen.

    
Ben Voigt 25.06.2012 21:02
quelle
5

Wenn Sie in Ihrem speziellen Fall 2 zur Potenz x berechnen, können Sie eine einfache Linksverschiebung verwenden. Dies würde Ihren Code vereinfachen:

%Vor%     
user5072377 02.07.2015 06:09
quelle
-1
%Vor%

für Lesbarkeit!

    
Dave Mateer 25.06.2012 21:00
quelle

Tags und Links