Rumah >hujung hadapan web >tutorial js >Mengapakah Kaedah Javascript toFixed() Tidak Membundarkan Dengan Tepat?
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!