您的位置:首页 > Web前端 > JavaScript

javascript把数字格式化转换成货币类型

2010-12-02 13:30 330 查看
做财务的东西总是比较有挑战的,性能,易用性,准确性都有很高要求,包括一些小的细节。
比如金额需要显示的时候转换成有千分位,小数点后保留2位等。去编辑的时候,又要格式化,把逗号都去掉。网上找了段代码,但是再次编辑会有问题,修改了一下,代码如下:

function outputMoney(number) {

number=number.replace(//,/g,"");

if (isNaN(number)||number=="") return "";

number = Math.round( number*100) /100;

if(number<0)

return '-'+outputDollars(Math.floor(Math.abs(number)-0) + '') + outputCents(Math.abs(number) - 0);

else

return outputDollars(Math.floor(number-0) + '') + outputCents(number - 0);

}

function outputDollars(number)

{

if (number.length<= 3)

return (number == '' ? '0' : number);

else

{

var mod = number.length%3;

var output = (mod == 0 ? '' : (number.substring(0,mod)));

for (i=0 ; i< Math.floor(number.length/3) ; i++)

{

if ((mod ==0) && (i ==0))

output+= number.substring(mod+3*i,mod+3*i+3);

else

output+= ',' + number.substring(mod+3*i,mod+3*i+3);

}

return (output);

}

}

function outputCents(amount)

{

amount = Math.round( ( (amount) - Math.floor(amount) ) *100);

return (amount<10 ? '.0' + amount : '.' + amount);

}

用法:

<input name="TRANS_AMOUNT" type="text" id="TRANS_AMOUNT" size="15" onblur="this.value=outputMoney(this.value);" />
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: