Javascript toFixed Rounding Discrepancies
toFixed(2) tidak dibundarkan ke atas untuk nilai perpuluhan tertentu, memaparkan 859.38 dan bukannya 859.39 dalam contoh yang disediakan . Percanggahan ini boleh dikaitkan dengan variasi dalam pelaksanaan penyemak imbas kaedah toFixed().
Untuk memintas isu ini dan memastikan pembundaran yang konsisten merentas penyemak imbas, pertimbangkan untuk menggunakan kaedah toFixed10() yang disyorkan oleh blg. Kaedah ini menyediakan pembundaran tepat walaupun untuk nilai ketepatan lanjutan.
Berikut ialah coretan kod dikemas kini yang menggabungkan toFixed10():
function toFixed(num, precision) { return (+(Math.round(+(num + 'e' + precision)) + 'e' + -precision)).toFixed(precision); } ... $('#lblTotalSprice').text('$' + addCommas(toFixed(currSprice, 2))); $('#lblTotalPrice').text('$' + addCommas(toFixed(currPrice, 2))); $('#lblTotalDiscount').text('$' + addCommas(toFixed(currDiscount, 2))); $('#lblTotalDeposit').text('$' + addCommas(toFixed(currDeposit, 2)));
Atas ialah kandungan terperinci Mengapakah toFixed(2) Pembundaran Salah untuk Nilai Perpuluhan Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!