亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JavaScript 格式化數字、金額、千分位、保留幾位小數、舍入舍去

2019-11-19 11:09:08
字體:
來源:轉載
供稿:網友

前端開發中經常會碰到用 JavaScript?格式化數字,最最常見的是格式化金額,一般格式化金額需要千分位分隔,保留2位小數等等。

簡單的功能函數

類似的代碼網上有很多:

/** * 將數值四舍五入(保留2位小數)后格式化成金額形式 * * @param num 數值(Number或者String) * @return 金額格式的字符串,如'1,234,567.45' * @type String */function formatCurrency(num) {  num = num.toString().replace(//$|/,/g,'');  if(isNaN(num))    num = "0";  sign = (num == (num = Math.abs(num)));  num = Math.floor(num*100+0.50000000001);  cents = num%100;  num = Math.floor(num/100).toString();  if(cents<10)  cents = "0" + cents;  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);}

或者

function fmoney(s, n) {  /*   * 參數說明:   * s:要格式化的數字   * n:保留幾位小數   * */  n = n > 0 && n <= 20 ? n : 2;  s = parseFloat((s + "").replace(/[^/d/.-]/g, "")).toFixed(n) + "";  var l = s.split(".")[0].split("").reverse(),    r = s.split(".")[1];  t = "";  for (i = 0; i < l.length; i++) {    t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");  }  return t.split("").reverse().join("") + "." + r;}//調用fmoney(9.7,2);//9.70fmoney('12345.675910', 3);//12,345.676

更加完善的功能函數

這些代碼基本能很好的運行。不過關系到經濟利益的時候,還要考慮舍去或者舍入幾厘。大家懂的,每個用戶幾厘錢可能帶來巨大的經濟收益。就比如說收手續費,如果一筆手續費計算出來是 3.4521 元,精確到分一般都會收 3.46 元。當然如果是付出去,那可能就是直接舍去了,一般會計算為 3.45 元。

以前收集過類似方法,不過在使用的時候會有BUG,JS 浮點型計算的精度問題。所以抽時間修復了一下:

function number_format(number, decimals, dec_point, thousands_sep,roundtag) {  /*  * 參數說明:  * number:要格式化的數字  * decimals:保留幾位小數  * dec_point:小數點符號  * thousands_sep:千分位符號  * roundtag:舍入參數,默認 "ceil" 向上取,"floor"向下取,"round" 四舍五入  * */  number = (number + '').replace(/[^0-9+-Ee.]/g, '');  roundtag = roundtag || "ceil"; //"ceil","floor","round"  var n = !isFinite(+number) ? 0 : +number,    prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),    sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,    dec = (typeof dec_point === 'undefined') ? '.' : dec_point,    s = '',    toFixedFix = function (n, prec) {       var k = Math.pow(10, prec);      console.log();       return '' + parseFloat(Math[roundtag](parseFloat((n * k).toFixed(prec*2))).toFixed(prec*2)) / k;    };  s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');  var re = /(-?/d+)(/d{3})/;  while (re.test(s[0])) {    s[0] = s[0].replace(re, "$1" + sep + "$2");  }   if ((s[1] || '').length < prec) {    s[1] = s[1] || '';    s[1] += new Array(prec - s[1].length + 1).join('0');  }  return s.join(dec);}console.log(number_format(2, 2, ".", ","))//"2.00"console.log(number_format(3.7, 2, ".", ","))//"3.70"console.log(number_format(3, 0, ".", ",")) //"3"console.log(number_format(9.0312, 2, ".", ","))//"9.03"console.log(number_format(9.00, 2, ".", ","))//"9.00"console.log(number_format(39.715001, 2, ".", ",", "floor")) //"39.71"console.log(number_format(9.7, 2, ".", ","))//"9.70"console.log(number_format(39.7, 2, ".", ","))//"39.70"console.log(number_format(9.70001, 2, ".", ","))//"9.71"console.log(number_format(39.70001, 2, ".", ","))//"39.71"console.log(number_format(9996.03, 2, ".", ","))//"9996.03"console.log(number_format(1.797, 3, ".", ",", "floor"))//"1.797"

參數有點多,你可以根據你自己的需求去修改。

推薦的類庫 Numeral.js 和 accounting.js

Numeral.js

一個用于格式化和操作數字的JavaScript庫。數字可以被格式化為貨幣,百分比,時間,幾個小數位數,千分位等等。 您也可以隨時創建自定義格式。

官網及文檔:http://numeraljs.com/

GitHub:https://github.com/adamwdraper/Numeral-js

accounting.js

一個輕量級的JavaScript庫,用于格式化數字,金額和貨幣等。

官網及文檔:http://openexchangerates.github.io/accounting.js/

GitHub:accounting.js

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品日产aⅴ| 7777kkkk成人观看| 少妇av一区二区三区| 亚洲成年人影院在线| 亚洲精品98久久久久久中文字幕| 国产亚洲美女精品久久久| 91产国在线观看动作片喷水| 色伦专区97中文字幕| 亚洲自拍偷拍在线| 国产成人精品免高潮在线观看| 91产国在线观看动作片喷水| 国产精品香蕉在线观看| 91亚洲国产成人精品性色| 成人免费淫片aa视频免费| 欧美一区二区三区精品电影| 精品久久久久久国产91| 国产精品福利观看| 国产精品高潮在线| 国产精品99久久99久久久二8| 国产亚洲综合久久| 2019av中文字幕| 色99之美女主播在线视频| 国外成人在线播放| 最近免费中文字幕视频2019| 日韩中文字幕在线精品| 国产精品亚洲аv天堂网| 久久亚洲精品毛片| 欧美日韩一区二区免费视频| 亚洲3p在线观看| 久久久免费电影| 青青草原一区二区| 欧美成在线视频| 成人国产精品日本在线| 日韩美女免费观看| 国产成人精品视频在线| 亚洲精品成人免费| 亚洲第一偷拍网| 91在线精品视频| 欧美性69xxxx肥| 欧美成年人视频| 久热99视频在线观看| 国产精品成人av在线| 久久亚洲精品一区二区| 91超碰caoporn97人人| 久久精品国产亚洲一区二区| 亚洲第一二三四五区| 亚洲香蕉伊综合在人在线视看| 美女福利精品视频| 久久精品电影网| 国产精品日日做人人爱| 91精品国产综合久久香蕉的用户体验| 中文字幕日韩欧美精品在线观看| 成人欧美一区二区三区黑人孕妇| 91性高湖久久久久久久久_久久99| 日韩欧美在线免费| 成人免费观看网址| 欧美亚洲成人xxx| 欧美性色视频在线| 亚洲一品av免费观看| 57pao成人国产永久免费| 亚洲va欧美va在线观看| 久色乳综合思思在线视频| 亚洲新声在线观看| 欧美有码在线观看| 国产精品一区二区久久久| 色综合色综合网色综合| 久久免费视频在线观看| 中文字幕在线看视频国产欧美在线看完整| 亚洲一区二区中文| 久久国产精品久久久| 亚洲最大福利视频网| 国产在线拍偷自揄拍精品| 亚洲成人黄色在线| 久久不射热爱视频精品| 日韩精品在线视频美女| 久久九九免费视频| 91久久久亚洲精品| 国产精品第七影院| 国产精品成人免费电影| 成人性生交xxxxx网站| 国产精品欧美风情| 国产精品成人一区二区| 国产一区二区精品丝袜| 国产午夜精品理论片a级探花| 久久久久久国产精品美女| 国产亚洲综合久久| 色偷偷9999www| 欧美成人免费观看| 国产精品私拍pans大尺度在线| 亚洲美女av在线| 欧美性极品少妇精品网站| 欧美国产乱视频| 久久综合色88| 欧美精品videosex极品1| 国产精品高潮呻吟久久av无限| 琪琪亚洲精品午夜在线| 国产欧美一区二区三区久久| 久久夜色撩人精品| 自拍偷拍亚洲区| 96sao精品视频在线观看| 97国产精品视频| 91在线观看免费| 在线观看日韩av| 欧美有码在线视频| 欧美乱大交xxxxx| 国产精品久久久久久久7电影| 亚洲精品永久免费精品| 国内精品美女av在线播放| 欧美精品久久久久久久久| 欧美一级大片在线免费观看| 在线亚洲国产精品网| 亚洲人成网站色ww在线| 在线播放国产一区二区三区| 91最新在线免费观看| 97在线视频免费| 国产999视频| 久久激情视频久久| 秋霞午夜一区二区| 久久久久中文字幕2018| 精品久久久久久中文字幕| 欧美日韩国产999| 欧美一级淫片丝袜脚交| 日韩极品精品视频免费观看| 亚洲国产精品va在线观看黑人| 亚洲男人天堂九九视频| 国产精品影院在线观看| 久久精品亚洲一区| 91在线精品播放| 欧美伊久线香蕉线新在线| 成人精品一区二区三区| 亚洲欧美日本另类| 国产精品自产拍在线观看中文| 国产欧美一区二区三区在线看| 亚洲国产美女久久久久| 欧美午夜精品久久久久久久| 欧美日韩成人黄色| 一本一本久久a久久精品牛牛影视| 久久噜噜噜精品国产亚洲综合| 国产精品久久在线观看| 国产成人综合精品| 久久久国产影院| 黑人与娇小精品av专区| 久久久久在线观看| 欧美日韩中文字幕综合视频| 91成品人片a无限观看| 亚洲xxx视频| 欧美三级免费观看| 欧美日韩国产中文字幕| 美女视频黄免费的亚洲男人天堂| 91探花福利精品国产自产在线| 亚洲国产精品大全| 欧美日韩一区二区免费视频| 国产亚洲精品久久久久久牛牛| 最近日韩中文字幕中文| 亚洲一区二区三区在线免费观看| 高清一区二区三区四区五区| 精品视频在线播放| 懂色av一区二区三区| 亚洲精品网站在线播放gif| 2019av中文字幕| 国产成人黄色av| 九九久久综合网站| www.久久久久久.com| 欧美在线视频在线播放完整版免费观看|