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

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

Patricia Arquette
Lepaskan: 2024-10-22 14:40:02
asal
505 orang telah melayarinya

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

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!

sumber:php
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