什麼是在javasript一輪商業的最佳方式?四捨五入數字
實施例:
0.145 -> ToString(2) -> 0.14
mathjs:
math.round(0.145, 2)) -> 0.14
也數學POW圓不會致使工作100%
目前,我使用:
function number_format(number, decimals, dec_point, thousands_sep) {
number = number + 0.000000001;
number = (number + '').replace(/[^0-9+\-Ee.]/g, '');
var n = !isFinite(+number) ? 0 : +number,
prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
s = '',
toFixedFix = function(n, prec) {
var k = Math.pow(10, prec);
return '' + Math.round(n * k)/k;
};
// Fix for IE parseFloat(0.55).toFixed(0) = 0;
s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
if (s[0].length > 3)
{
s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
}
if ((s[1] || '').length < prec) {
s[1] = s[1] || '';
s[1] += new Array(prec - s[1].length + 1).join('0');
}
return s.join(dec);
}
用此修復程序(數=數+ 0.000000001 ;) 我得到0.15
有沒有更好的辦法做到這一點?
我認爲最好的辦法是將數字轉換爲字符串,然後查看您想要的舍入位置的數字,然後再手動應用舍入。我會很快發佈一個函數。 – RobG
*「有沒有更好的方法來做到這一點?」*是的!不要使用花車進行貨幣計算。將價格保持在最低單位,例如美分。然後,當你想顯示在不同的單元數(例如歐元),你只需要除以100 –
值可以有人開導我,在這個問題上的商業性一詞? –