調整 Intl.NumberFormat 的顯示小數的原則
前言
Intl.NumberFormat 在顯示美金時會顯示到小數第二位,但如果需要有小數時才顯示小數可行嗎?查了一下可以透過參數調整完成,在此把學習的過程做個紀錄。
內容
範例如下
let numFormatAuto = new Intl.NumberFormat("en-US", {
style: "currency",
currency: "USD",
trailingZeroDisplay : 'auto',
});
console.log( numFormatAuto.format(10000) );//$10,000.00
//
let numFormatStripIfInteger = new Intl.NumberFormat("en-US", {
style: "currency",
currency: "USD",
trailingZeroDisplay : 'stripIfInteger'
});
console.log( numFormatStripIfInteger.format(10000) );//$10,000
console.log( numFormatStripIfInteger.format(10000.25) );//$10,000.25
//
let numFormat = new Intl.NumberFormat("en-US", {
style: "currency",
currency: "USD",
maximumFractionDigits : 0
});
console.log( numFormat.format(10000.25) );//$10,000
要調整顯示小數的原則是透過 trailingZeroDisplay ,參數有 auto 與 stripIfInteger ,auto 就是預設值,如範例會顯示到小數第二位,使用 stripIfInteger 後,當數值是整數時就不在顯示小數,當有小數時還是會顯示小數,也許你會想到可以透過 maximumFractionDigits 來做到不顯示小數,但使用 maximumFractionDigits 會變成無論如何都不顯示小數,和 stripIfInteger 是不一樣的。
沒有留言:
張貼留言