Rumah  >  Artikel  >  hujung hadapan web  >  Mengapakah toFixed(2) Pembundaran Salah untuk Nilai Perpuluhan Tertentu?

Mengapakah toFixed(2) Pembundaran Salah untuk Nilai Perpuluhan Tertentu?

Patricia Arquette
Patricia Arquetteasal
2024-10-22 14:40:02417semak imbas

Why is toFixed(2) Rounding Incorrectly for Certain Decimal Values?

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!

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