調整 Intl.NumberFormat 的進位原則
前言
Intl.NumberFormat 的進位原則是可以透過參數調整的,在此把學習的過程做個紀錄。
內容
範例如下
let numFormat = new Intl.NumberFormat("zh-TW", {
style: 'unit',
unit : 'liter',
unitDisplay : 'long',
maximumFractionDigits : 1,
});
//
console.log( numFormat.format(10.54) );//10.5 公升
console.log( numFormat.format(10.55) );//10.6 公升
//
console.log( new Intl.NumberFormat('zh-TW', {
style: 'unit',
unit : 'liter',
unitDisplay : 'long',
maximumFractionDigits : 1,
roundingMode : 'ceil'
}).format( -10.54) );//-10.5 公升
//
console.log( new Intl.NumberFormat('zh-TW', {
style: 'unit',
unit : 'liter',
unitDisplay : 'long',
maximumFractionDigits : 1,
roundingMode : 'expand'
}).format( -10.54) );//-10.6 公升
//
console.log( new Intl.NumberFormat('zh-TW', {
style: 'unit',
unit : 'liter',
unitDisplay : 'long',
maximumFractionDigits : 1,
roundingMode : 'floor'
}).format( -10.51) );//-10.6 公升
//
console.log( new Intl.NumberFormat('zh-TW', {
style: 'unit',
unit : 'liter',
unitDisplay : 'long',
maximumFractionDigits : 1,
roundingMode : 'trunc'
}).format( -10.51) );//-10.5 公升
範例開頭示範不調整時會以四捨五入為原則來調整,如果要調整原則要透過 roundingMode 參數來調整,由於參數有點多,這次介紹 ceil 、expand 、 floor 與 trunc 這四個參數,ceil 與 expand 可以簡化成"無條件進位",那分兩個的意義呢?主要差異在負數時的進位, ceil 會進位到 -10.5 ,但 expand 會進位到 -10.6 , floor 與 trunc 也是一樣的關係,理解成無條件捨棄,但在負數時的原則會不一樣, floor 會捨棄到 -10.6 , trunc 則是 -10.5 。
沒有留言:
張貼留言