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
Lepaskan: 2025-01-01 08:14:11
asal
167 orang telah melayarinya

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();
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan