用.toFixed(2)
即使數字是2.00,我也總是得到2位小數有最大。 2位小數
我可以得到「2」嗎?
實施例:
- 2.00 => 2
- 2.05 => 2.05
- 2.053435 => 2.05
- 2.057435 => 2.06
用.toFixed(2)
即使數字是2.00,我也總是得到2位小數有最大。 2位小數
我可以得到「2」嗎?
實施例:
function toFixedIfNecessary(value, dp){
return +parseFloat(value).toFixed(dp);
}
console.log(toFixedIfNecessary(1.999, 2)); // 2
console.log(toFixedIfNecessary(2, 2)); // 2
console.log(toFixedIfNecessary(2.1, 2)); // 2.1
console.log(toFixedIfNecessary(2.05, 2)); // 2.05
console.log(toFixedIfNecessary(2.05342, 2)); // 2.05
console.log(toFixedIfNecessary(2.04999, 2)); // 2.05
console.log(toFixedIfNecessary(2.04499, 2)); // 2.04
console.log(toFixedIfNecessary(2.053435, 2)); // 2.05
console.log(toFixedIfNecessary(2.057435, 2)); // 2.06
這是什麼問題?有人可以解釋爲什麼+ parseFloat有這種行爲? – homebrand
可以使用Math.round()
:
var number = 2.005;
var number2 = 2.558934;
var number3 = 1.005;
function round(value, decimals) {
return Number(Math.round(value+'e'+decimals)+'e-'+decimals);
}
console.log(round(number, 2)) // > 2.01
console.log(round(number2, 2)) // > 2.56
console.log(round(number3, 2)) // > 1.01
可能重複[回合在JavaScript中最多2位小數(http://stackoverflow.com/questions/11832914/round-to-at-most -2-decimal-places-in-javascript) – Vucko
但是這也意味着我使用toFixed(2),它不工作就像我想 – Elfy
那麼使用腳本從最投票的答案?這裏的[你的榜樣(http://jsfiddle.net/af3qg9bc/) – Vucko