| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- export const NumFormatUtil = {
- getD : function(d, n) {
- if(d < 0) {
- return "-" + NumFormatUtil.getD(Math.abs(d), n);
- }else {
- //转换成带小数点的字符串
- var dStr = d.toFixed(n + 2);
-
- var ddIntLen = (parseInt(d) + "").length;
-
- var left = parseInt(dStr.substring(0, n));//有效位
- var is5 = parseInt(dStr.substring(n, n + 1));//是否为5
- var nnn = parseInt(dStr.substring(n - 1, n));//第n位
- var not0 = Number(dStr.substring(n + 1));//第n位
- var add = 0;//需要进一吗
- var added = false;
- if(is5 == 5) {
- //奇进偶不进
- if(nnn % 2 == 1 || not0 != 0) {
- added = true;
- }
- } else if(is5 > 5) {
- //加进一
- added = true;
- }
- //N-1位要进一需要乘的数
- // var str = StringUtils.rightPad("1", ddIntLen - n + 1 , "0");
- var str = Math.pow(10, ddIntLen - n);
- if(added) {
- add = 1;//需要进一
- }
-
- return (left + add) * parseInt(str) + "";
- }
- },
- getNumZ : function(d) {
- if(d || (d != '' && d == 0)) {
- d = parseFloat(d);
- d = d.toFixed(2);
- }
- return d;
- },
- getD2 : function(d, n) {
- if(d < 0) {
- return "-" + NumFormatUtil.getD2(Math.abs(d), n);
- }else if(d == 0) {
- //return "0.00";
- return "0";
- }
- if(n > 0) {
- if(0 < d && d < 1) {
- //(0, 1)调用[1, 10)的方法
- var str = (Number(NumFormatUtil.getD2(d*100.0, n)) / 100.00) + "";
- if(str.length == 1) {
- str += ".000";
- }else if(str.length == 3) {
- str += "00";
- }else if(str.length == 4) {
- str += "000";
- }
- return str;
- }else if(1 <= d && d < 10){
- //(1, 10)调用[10, 100)的方法
- var str = (Number(NumFormatUtil.getD2(d*10.0, n)) / 10.0) + "";
- if(str.length == 1) {
- str += ".00";
- }else if(str.length == 3) {
- str += "0";
- }
- return str;
- }else if(10 <= d && d < 100) {
- //(10, 100)调用[1000)的方法
- return (parseInt(Number(NumFormatUtil.getD2(d*10.0, n)) / 10.0)) + "";
- }else if(100 <= d) {
- return NumFormatUtil.getD(d, n);
- }
-
- }else {
- return d + "";
- }
-
- return null;
- },
- getNumQ : function(d) {
- if(d || d == 0) {
- d = parseFloat(d);
- return NumFormatUtil.getD3(d, 3);
- }
- return d;
- },
- getD3 : function(d, n) {
- console.log('我是流量啊')
- console.log(d)
- if(d < 0) {
- return "-" + NumFormatUtil.getD3(Math.abs(d), n);
- }else if(d == 0) {
- //return "0.000";
- return "0";
- }
- if(n > 0) {
- if(0 < d && d < 1) {
- //(0, 1)调用[1, 10)的方法
- var str = (Number(NumFormatUtil.getD3(d*100.0, n)) / 100.00) + "";
- if(str.length == 1) {
- str += ".000";
- }else if(str.length == 3) {
- str += "00";
- }else if(str.length == 4) {
- str += "0";
- }else if(str.length > 5) {
- str = str.substring(0, 5);
- }
- return str;
- }else if(1 <= d && d < 10){
- //(1, 10)调用[10, 100)的方法
- var str = (Number(NumFormatUtil.getD3(d*10.0, n)) / 10.0) + "";
- // return StringUtils.rightPad(str, n + 1, "0");
- if(str.length == 1) {
- str += ".00";
- }else if(str.length == 3) {
- str += "0";
- }else if(str.length > 4) {
- str = str.substring(0, 4);
- }
- return str;
- }else if(10 <= d && d < 100) {
- //(10, 100)调用[1000)的方法
- var str = (Number(NumFormatUtil.getD3(d*10.0, n)) / 10.0) + "";
- if(str.length == 2) {
- str += ".0";
- }
- return str;
- }else if(100 <= d && d < 1000) {
- //(100, 1000)调用[10000)的方法
- return (parseInt(Number(NumFormatUtil.getD3(d*10.0, n)) / 10.0)) + "";
- }else if(1000 <= d) {
- return NumFormatUtil.getD(d, n);
- }
-
- }else {
- return d + "";
- }
-
- return null;
- }
- }
|