數字做格式化

2021-08-27 22:41:23 字數 1444 閱讀 5466

數字格式化應該很常用,保留幾位小數,四捨五入,千分位分割

奈何專案上原有格式化方法,功能比較單一,只能格式化成如 12,456,451.00這樣的數字,整數部分千分位分割,小數部分直接捨棄,用兩個0表示

無奈自己寫了乙個

/**

* 格式化數字(小數字數,千分位逗號分割)

* @param nstr 數字或者字串

* @param decimal 數字 小數字要補全的位數 預設2 如8.00

* @param precision 小數部分有效的位數 預設0 如8.00 設定1所得結果如8.40

* @param round 是否要四捨五入 true四捨五入 false直接截斷 預設false

* @param thousand 是否要千分們分割 預設false不分割

* @param formatdecimal 小數部分是否要千分位分割 預設false不分割

* @return string 格式化後的數字字串

*/function numformat (nstr, decimal, precision, round, thousand, formatdecimal) else if (typeof precision === 'boolean')

typeof decimal === 'number' || (decimal = 2);

typeof precision === 'number' || (precision = 0);

precision = precision < decimal ? precision : decimal;

round = typeof round === 'boolean' && round;

thousand = typeof thousand === 'boolean' && thousand;

formatdecimal = typeof formatdecimal === 'boolean' && formatdecimal;

nstr || (nstr = 0);

nstr = (nstr + '').replace(/[^\d\.]/g, '');

if (round) else else if (nstr.indexof('.') >= 0)

nstr = nstr.replace(new regexp('(\\.\\d).*'), '$1');}}

nstr = number(nstr).tofixed(decimal);

var narr = nstr.split('.');

if (thousand && narr[0]) )(?=(?:\d)+$)/g, '$1,');

}if (thousand && formatdecimal && narr[1]) )(?=\d)/g, '$1,');

}return narr.join('.');

}

格式化數字

格式化數字 下表是可在format函式中用於格式化數字的字元。字元 說明0 數字佔位符。顯示乙個數字或0。如果表示式在格式字串中出現0的位置上有數字,則顯示該數字 否則在該位置顯示0。如果數字的位數少於格式表示式中 0 的個數 小數點任一側 則顯示前導零或尾隨零。如果數字的小數點分隔符右側的位數多於...

數字格式化

double pi 3.1415927 圓周率 取一位整數 system.out.println new decimalformat 0 format pi 3 取一位整數和兩位小數 system.out.println new decimalformat 0.00 format pi 取兩位整數和...

數字格式化

x 3.1415926535 round x,2 out 1 3.14in 2 round x,2 out 2 3.14in 3 當位於中間時候,取整偏向最近的偶數 y 1.5 z 2.5 round y out 3 2in 4 round z out 4 2in 5 round 1.6 out 5...