古詩詞大全網 - 成語查詢 - JavaScript 數字格式化怎麽寫

JavaScript 數字格式化怎麽寫

給妳寫個js函數直接調用可以格式化數字的以下是代碼部分<script>

/**

* 格式化數字顯示方式

* 用法

* formatNumber(12345.999,'#,##0.00');

* formatNumber(12345.999,'#,##0.##');

* formatNumber(123,'000000');

* @param num

* @param pattern

*/

function formatNumber(num,pattern){

var strarr = num?num.toString().split('.'):['0'];

var fmtarr = pattern?pattern.split('.'):[''];

var retstr='';

// 整數部分

var str = strarr[0];

var fmt = fmtarr[0];

var i = str.length-1;

var comma = false;

for(var f=fmt.length-1;f>=0;f--){

switch(fmt.substr(f,1)){

case '#':

if(i>=0 ) retstr = str.substr(i--,1) + retstr;

break;

case '0':

if(i>=0) retstr = str.substr(i--,1) + retstr;

else retstr = '0' + retstr;

break;

case ',':

comma = true;

retstr=','+retstr;

break;

}

}

if(i>=0){

if(comma){

var l = str.length;

for(;i>=0;i--){

retstr = str.substr(i,1) + retstr;

if(i>0 && ((l-i)%3)==0) retstr = ',' + retstr;

}

}

else retstr = str.substr(0,i+1) + retstr;

}

retstr = retstr+'.';

// 處理小數部分

str=strarr.length>1?strarr[1]:'';

fmt=fmtarr.length>1?fmtarr[1]:'';

i=0;

for(var f=0;f<fmt.length;f++){

switch(fmt.substr(f,1)){

case '#':

if(i<str.length) retstr+=str.substr(i++,1);

break;

case '0':

if(i<str.length) retstr+= str.substr(i++,1);

else retstr+='0';

break;

}

}

return retstr.replace(/^,+/,'').replace(/\.$/,'');

}

alert(formatNumber(12345.999,'#,##0.00'));

</script>