Heim > Backend-Entwicklung > C#.Net-Tutorial > Lösung des Problems der Gleitkommaberechnung in C#

Lösung des Problems der Gleitkommaberechnung in C#

黄舟
Freigeben: 2017-09-20 11:05:18
Original
2073 Leute haben es durchsucht

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);
}
Nach dem Login kopieren

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);
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage