Apabila memformat berganda untuk output dalam C#, adalah penting untuk ambil perhatian bahawa output berbeza daripada nilai yang dipaparkan dalam penyahpepijat. Inilah sebabnya:
Tidak seperti C, di mana ketepatan output ditentukan oleh penentu format, C# membundarkan semua dua kali ganda kepada 15 digit perpuluhan bererti sebelum menggunakan sebarang pemformatan. Percanggahan ini timbul kerana C# mengutamakan ketepatan berbanding ketepatan yang diminta.
Penyahpepijat Visual Studio secara langsung memaparkan perwakilan binari dalaman bagi beregu, oleh itu percanggahan dengan output yang diformatkan.
Walaupun C# tidak mempunyai penyelesaian terbina dalam untuk pemformatan perpuluhan tepat, anda boleh membina perwakilan rentetan secara manual daripada data binari dalaman. Sebagai alternatif, anda boleh menggunakan perpustakaan pihak ketiga seperti DoubleConverter daripada Jon Skeet, yang menyediakan kaedah ToExactString untuk output perpuluhan yang tepat.
Menggunakan DoubleConverter untuk memformat dua hingga 20 tempat perpuluhan:
double i = 10 * 0.69; Console.WriteLine(DoubleConverter.ToExactString(i));
Atas ialah kandungan terperinci Mengapakah Pemformatan Berganda C# dan Nilai Penyahpepijat Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!