JavaScript 数字格式化怎么写

JavaScript08

JavaScript 数字格式化怎么写,第1张

给你写个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-1f>=0f--){

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>=0i--){

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=0f<fmt.lengthf++){

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>

获取整数的长度可以用以下几种方法实现:

1.调用toString方法转为字符串后取长度

1

2

var num = 123

alert(num.toString().length)

2.隐式转字符串后取长度

1

2

var num = 123

alert((num + '').length)

推荐第1种方法,简单高效