Apabila menggunakan pembolehubah titik terapung berketepatan dua dalam C#, pembangun sering menemui hasil yang tidak dijangka dalam perbandingan yang melibatkan nilai perpuluhan. Satu masalah sedemikian timbul daripada sifat asas perwakilan titik terapung.
dalam C# menggunakan pecahan binari dan bukannya pecahan perpuluhan untuk menyimpan nilai titik terapung. Perwakilan ini mempunyai hadnya, dan beberapa nilai perpuluhan tidak boleh disimpan dengan tepat. Sebagai contoh, nombor 0.1 tidak boleh diwakili tepat sebagai pecahan binari. Ia disimpan sebagai anggaran, menghasilkan nilai yang sedikit berbeza. double
jenis data dan bukannya decimal
. double
Simpan nombor menggunakan tatatanda perpuluhan, membenarkan nilai seperti 0.1 diwakili dengan tepat. Ini menghapuskan masalah yang dihadapi semasa membandingkan nilai decimal
. double
Nilai perpuluhan seperti 0.1 mempunyai perwakilan binari tidak berulang dan oleh itu sukar untuk disimpan dengan tepat dalam sistem asas 2. Akibatnya, anggaran binari 0.1 yang disimpan dalam pembolehubah
mungkin berbeza sedikit daripada nilai sebenar. double
penyata, di mana nilai jangkaan 0.1 mungkin tidak sepadan dengan nilai yang disimpan. Menggunakan jenis data if
mengelakkan masalah ini dengan memastikan storan dan perbandingan nilai perpuluhan yang tepat. decimal
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membandingkan Nilai Perpuluhan dengan Tepat dalam C# Apabila Menggunakan Nombor Titik Terapung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!