Rumah >hujung hadapan web >tutorial js >Mengapakah Aritmetik Titik Terapung JavaScript Menghasilkan Keputusan Yang Tidak Dijangka, dan Bagaimana Saya Boleh Menyelesaikan Ini?

Mengapakah Aritmetik Titik Terapung JavaScript Menghasilkan Keputusan Yang Tidak Dijangka, dan Bagaimana Saya Boleh Menyelesaikan Ini?

Patricia Arquette
Patricia Arquetteasal
2025-01-01 08:14:11170semak imbas

Why Does JavaScript's Floating-Point Arithmetic Produce Unexpected Results, and How Can I Solve This?

Perangkap Ketepatan Titik Terapung dan Penyelesaian dalam JavaScript

Aritmetik titik terapung JavaScript kadangkala boleh membawa kepada hasil yang tidak dijangka. Pertimbangkan kod ini:

function test() {
  var x = 0.1 * 0.2;
  document.write(x);
}
test();

Daripada jangkaan 0.02, ia mencetak 0.020000000000000004. Percanggahan ini berpunca daripada ketidaktepatan yang wujud dalam perwakilan nombor perpuluhan sebagai nilai titik terapung binari.

Penyelesaian Elegan

Untuk menangani isu ini tanpa menggunakan fungsi pembundaran, anda mempunyai beberapa pilihan:

  • Gunakan perpustakaan perpuluhan khusus, seperti BigDecimal untuk JavaScript atau DecimalJS, yang menjamin pengiraan perpuluhan yang tepat.
  • Tukar kepada aritmetik integer, terutamanya untuk pengiraan kewangan, dengan memanipulasi sen dan bukannya dolar. Walau bagaimanapun, pendekatan ini memerlukan pengendalian tambahan dan disertakan dengan kelemahan.

Pertimbangan Praktikal

Walaupun pilihan pertama menawarkan ketepatan yang paling, ia mungkin terlalu tepat untuk kebanyakan kes penggunaan. Dalam keadaan sedemikian, pertimbangkan untuk memformatkan hasil anda dengan bilangan tempat perpuluhan tetap apabila memaparkannya.

Adalah penting untuk memahami bahawa had ketepatan titik terapung tidak khusus untuk JavaScript; ia digunakan untuk semua bahasa pengaturcaraan yang menggunakan aritmetik titik terapung binari. Kuncinya terletak pada memilih penyelesaian yang sesuai berdasarkan keperluan ketepatan aplikasi anda.

Ringkasnya, menangani ketepatan titik terapung dalam JavaScript melibatkan mempertimbangkan dengan teliti ketepatan yang diperlukan dan memilih pendekatan yang paling sesuai untuk kes penggunaan khusus anda .

Atas ialah kandungan terperinci Mengapakah Aritmetik Titik Terapung JavaScript Menghasilkan Keputusan Yang Tidak Dijangka, dan Bagaimana Saya Boleh Menyelesaikan Ini?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn