javascript把数字格式化转换成货币类型
2010-12-02 13:30
399 查看
做财务的东西总是比较有挑战的,性能,易用性,准确性都有很高要求,包括一些小的细节。
比如金额需要显示的时候转换成有千分位,小数点后保留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);" />
比如金额需要显示的时候转换成有千分位,小数点后保留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);" />
相关文章推荐
- JavaScript获取人类可识别的文件大小转换显示 和 格式化数字类型,保留小数点后几位,非四舍五入
- JavaScript的类型转换(字符转数字 数字转字符)
- 一个数字转中文大写货币数字的类.完美兼容于C#所有值类型转换和操作,beta版.希望大家多多纠正.
- javascript 将数字转成货币类型( 1000 => ¥1,000.00)
- JavaScript的类型转换(字符转数字,数字转字符)
- JavaScript的类型转换(字符转数字,数字转字符)
- javascript 数字逗号分隔、货币取消分隔、精度转换控制
- JavaScript的类型转换(字符转数字,数字转字符)
- 数字货币转换成大写货币金额的JAvascript代码
- JavaScript的类型转换(字符转数字,数字转字符)
- 数字货币转换成大写货币金额的JAvascript代码
- Javascript学习笔记:2种其他类型转换为数字Number类型的方式
- Android工具类——NumberUtils把数字字符串转换成指定国家的货币类型
- javascript把数字格式化转换成货币型
- `JavaScript`格式化货币数字
- 我的JavaScript回顾之路_01—0206—++在前在后区别/&&和||/条件判断语句/循环语句的区别/字符串类型数字和数字类型之间的转换
- JavaScript中将字符类型转换成数字
- javascript 将数字转成货币类型( 1000 => ¥1,000.00)
- javascript基础:字符串自动转换为数字类型
- 补点JavaScript 基础:字符串到数字类型的转换(Number, +, ~~, parseInt, parseFloat)