JS對貨幣格式化函數
方法一:保留2位小數
/**
* 將數值四舍五入(保留2位小數)后格式化成金額形式
*
* @param num 數值(Number或者String)
* @return 金額格式的字符串,如'1,234,567.45'
* @type String
*/
export function formatCurrency(num) {
num = num.toString().replace(/[^\d\.-]/g,''); //轉成字符串并去掉其中除數字, . 和 - 之外的其它字符。
if(isNaN(num)) num = "0"; //是否非數字值
var sign = (num == (num = Math.abs(num)));
num = Math.floor(num * 100 + 0.50000000001); //下舍入
var cents = num % 100; //求余 余數 = 被除數 - 除數 * 商
cents = (cents < 10) ? "0" + cents : cents; //小于2位數就補齊
num = Math.floor(num / 100).toString();
for(var i = 0; i < Math.floor( (num.length - (1+i)) / 3 ); i++ ){ //每隔三位小數分始開隔
num = num.substring(0, num.length - (4 * i + 3)) + ',' + num.substring(num.length - (4 * i + 3));
}
return (((sign) ? '' : '-' ) + num + '.' + cents);
}
方法二
/**
* 參數說明
* @param s:要格式化的數字
* @param n:保留幾位小數
* */
function formatCurrency(s, n) {
n = n > 0 && n <= 20 ? n : 2; //n大于0小于等于20時,值為n,否則默認為2
//將要格式化的數字轉換成字符串,并去掉其中匹配的其他字符后返回一個浮點數。
//把 Number 四舍五入為指定位數的數字后,最終在轉換成字符串。
s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
var numArry = s.split("."), //分隔字符串 0 -> 小數點前面數值 1 -> 小數點后面的尾數
l = numArry[0].split("").reverse(), //將前面數值再分隔,并反轉順序
t = "";
for (var i = 0; i < l.length; i++) { //每隔三位小數分始開隔
t += l[i] + ( (i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "" );
}
//將順序反轉回來,并返回一個字符串
return t.split("").reverse().join("") + "." + numArry[1];
}
JavaScript 格式化數字、金額、千分位、保留幾位小數
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
推薦閱讀更多精彩內容
- 這里主要是用到iOS系統NSNumberFormatter 類,這是一個蘋果系統專門用來處理數據精確和各種數據處理...
- http://www.cftea.com/c/2017/03/6843.asp