Heim > Backend-Entwicklung > C++ > Wie kann ich den genauen Dezimalwert eines Doubles in C# genau ausgeben?

Wie kann ich den genauen Dezimalwert eines Doubles in C# genau ausgeben?

Mary-Kate Olsen
Freigeben: 2025-01-05 16:57:41
Original
183 Leute haben es durchsucht

How Can I Accurately Output the Exact Decimal Value of a Double in C#?

Formatieren von Doppelzeichen in C#

Bei der Ausgabe von Doppelzeichen rundet C# diese automatisch auf 15 signifikante Ziffern, bevor eine Formatierung angewendet wird. Dies kann zu Abweichungen zwischen der formatierten Ausgabe und dem tatsächlichen Wert des Doubles führen.

Problem mit String.Format:

Die String.Format-Methode in C# betrifft nur die Anzeige der formatierten Zahl. Die Genauigkeit des zugrunde liegenden Double-Werts wird dadurch nicht angepasst. Infolgedessen zeigt String.Format("{0:F20}", i) 20 Dezimalstellen an, der tatsächliche Wert des Doubles wurde jedoch möglicherweise intern noch auf 15 Dezimalstellen gerundet.

Beispiel:

Betrachten Sie den folgenden Code:

double i = 10 * 0.69;
Console.WriteLine(String.Format("  {0:F20}", i));
Nach dem Login kopieren

Die Ausgabe erfolgt 6,90000000000000000000 , auch wenn der tatsächliche Wert von i näher bei 6,89999999999999946709 liegt.

Lösung:

Um den genauen Dezimalwert eines Doubles auszugeben, können Sie Jon Skeets verwenden DoubleConverter-Klasse. Diese Klasse verfügt über eine ToExactString-Methode, die die exakte Dezimaldarstellung eines Double zurückgibt. Sie können die Zeichenfolge dann nach Bedarf formatieren.

Zum Beispiel:

double i = 10 * 0.69;
Console.WriteLine(DoubleConverter.ToExactString(i));
Nach dem Login kopieren

Dies gibt 6,89999999999999946709294817992486059665679931640625 aus, was die genaue Dezimaldarstellung von i ist.

Das obige ist der detaillierte Inhalt vonWie kann ich den genauen Dezimalwert eines Doubles in C# genau ausgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage