Lassen Sie mich Ihnen eine Rechenaufgabe zeigen, um Ihre Rechenfähigkeiten zu testen.
0,1 +0,1 +0,1 - 0,3 ist gleich was?
Du stellst vielleicht eine so einfache Frage: Schaust du auf mich herab? Es muss gleich 0 sein.
Es ist kein Problem, wenn Sie direkt rechnen, aber was ist, wenn Sie einen Computer verwenden?
Die Zeit, Zeuge des Wunders zu werden, ist gekommen, schauen Sie sich den Code an:
void Main() { var f = 0.1 +0.1 +0.1 -0.3; Console.WriteLine("f=={0}",f); }
Laufergebnisse:
Dies liegt an der Genauigkeit des Computers, der mangelnden Präzision des internen Speichers und der Bedienung des Computers usw. Ich kann das möglicherweise nicht Erklären Sie es deutlich, aber Sie können die folgende Lösung verwenden:
void Main() { //var f = 0.1 +0.1 +0.1 -0.3; //Console.WriteLine("f=={0}",f); var f1 = new Decimal(0.1) + new Decimal(0.1) + new Decimal(0.1) - new Decimal(0.3); Console.WriteLine("f1 == {0}",f1); }
Laufergebnisse:
Dies ist das normale Betriebsergebnis.
La la la! ! ! !
Das obige ist der detaillierte Inhalt vonLösung des Problems der Gleitkommaberechnung in C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!