Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengeluarkan Nilai Perpuluhan Tepat Double dalam C#?
Memformat Berganda dalam C#
Apabila mengeluarkan dua kali ganda, C# secara automatik membundarkannya kepada 15 digit bererti sebelum menggunakan sebarang pemformatan. Ini boleh membawa kepada percanggahan antara output berformat dan nilai sebenar dua kali ganda.
Masalah dengan String.Format:
Kaedah String.Format dalam C# hanya mempengaruhi paparan nombor yang diformatkan. Ia tidak melaraskan ketepatan nilai berganda asas. Akibatnya, String.Format("{0:F20}", i) akan memaparkan 20 tempat perpuluhan, tetapi nilai sebenar dua kali ganda mungkin masih telah dibundarkan kepada 15 tempat perpuluhan secara dalaman.
Contoh:
Pertimbangkan kod berikut:
double i = 10 * 0.69; Console.WriteLine(String.Format(" {0:F20}", i));
Output akan 6.9000000000000000000 , walaupun nilai sebenar i lebih hampir kepada 6.89999999999999946709.
Penyelesaian:
Untuk keluaran berganda, anda boleh menggunakan nilai perpuluhan dua kali ganda S. Kelas DoubleConverter. Kelas ini mempunyai kaedah ToExactString yang mengembalikan perwakilan perpuluhan tepat bagi dua kali ganda. Anda kemudiannya boleh memformatkan rentetan seperti yang diperlukan.Contohnya:double i = 10 * 0.69; Console.WriteLine(DoubleConverter.ToExactString(i));Ini akan mengeluarkan 6.89999999999999946709294817992486059665679931640625 , iaitu perpuluhan yang tepat
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Nilai Perpuluhan Tepat Double dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!