Rumah  >  Artikel  >  hujung hadapan web  >  Mengapakah Kaedah Javascript toFixed() Tidak Membundarkan Dengan Tepat?

Mengapakah Kaedah Javascript toFixed() Tidak Membundarkan Dengan Tepat?

Susan Sarandon
Susan Sarandonasal
2024-10-22 15:07:03837semak imbas

Why is Javascript's toFixed() Method Not Rounding Accurately?

Javascript toFixed Not Rounding Precisely

Dalam Javascript, kaedah toFixed() digunakan untuk memformat nombor menjadi rentetan. Walau bagaimanapun, pengguna mengalami gelagat pembundaran yang tidak dijangka apabila menggunakan kaedah ini, khususnya dalam kes di mana ia gagal untuk membulatkan nombor dengan betul.

Punca di sebalik percanggahan pembundaran ini terletak pada aritmetik titik terapung asas yang digunakan oleh Javascript. Nombor titik terapung kadangkala boleh mengakibatkan ralat ketepatan, terutamanya apabila bekerja dengan nilai yang sangat kecil atau sangat besar.

Untuk menangani isu ini, pertimbangkan penyelesaian berikut:

Penyelesaian yang disediakan mencadangkan penggunaan kaedah toFixed10(), yang merupakan versi diubah suai bagi kaedah toFixed() asal yang memastikan pembundaran yang lebih tepat. Kaedah ini membundarkan nombor kepada 10 tempat perpuluhan, yang cukup tepat untuk kebanyakan aplikasi praktikal.

Penyelesaian juga termasuk fungsi tersuai untukTetap() yang melakukan pembundaran serupa menggunakan Math.round() dan Math.pow () kaedah. Fungsi ini membolehkan anda menentukan ketepatan yang diingini, memastikan hasil yang konsisten merentas pelayar.

Pelaksanaan

Dengan memasukkan kaedah toFixed() yang diubah suai atau fungsi tersuai dalam Javascript anda kod, anda boleh menyelesaikan isu pembundaran dengan berkesan dan mencapai pengiraan berangka yang tepat:

function toFixed( num, precision ) {
    return (+(Math.round(+(num + 'e' + precision)) + 'e' + -precision)).toFixed(precision);
}

// Usage:
var number = 859.385;
console.log(toFixed(number, 2)); // Output: "859.39"

Kesimpulan

Dengan memahami batasan kaedah toFixed() Javascript dan menggunakan penyelesaian yang dinyatakan di atas, pengaturcara boleh mengatasi ketidaktepatan pembundaran dan memastikan pengiraan berangka yang boleh dipercayai dalam aplikasi mereka.

Atas ialah kandungan terperinci Mengapakah Kaedah Javascript toFixed() Tidak Membundarkan Dengan Tepat?. 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