展会信息港展会大全

js金额数字格式化实现代码
来源:互联网   发布日期:2016-01-26 10:21:59   浏览:4090次  

导读:这篇文章主要介绍了js中将数字格式化为金额的方法,使用加减逗号处理金额,一个格式化金额的代码,有需要的朋友参考下例1,使数字1111111变成11,111,111 00,保留两位小数。代码如下:htmlheadscript type= ...

这篇文章主要介绍了js中将数字格式化为金额的方法,使用加减逗号处理金额,一个格式化金额的代码,有需要的朋友参考下

例1,使数字1111111变成11,111,111.00,保留两位小数。

代码如下:

<html>

<head>

<script type="text/javascript">

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);

}

</script>

</head>

<body>

<input type=textmaxlength="8" id="test" onblur="this.value=outputmoney(this.value);" >

</body>

</html>

在线运行:

<html>

<head>

<script type="text/javascript">

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);

}

</script>

</head>

<body>

<input type=text maxlength="8" id="test" onblur="this.value=outputmoney(this.value);" >

</body>

</html>

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

例2,使数字1111111变成11,111,111---和使11,111,111变成1111111---整数--

代码如下:

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="content-type" content="text/html; charset=gb2312" />

<title>js 格式化金额的代码---www.jb51.net</title>

<script language="javascript">

function tran(id)

{

var v, j, sj, rv = "";

v = id.value.replace(/,/g,"").split(".");

j = v[0].length % 3;

sj = v[0].substr(j).toString();

for (var i = 0; i < sj.length; i++)

{

rv = (i % 3 == 0) ? rv + "," + sj.substr(i, 1): rv + sj.substr(i, 1);

}

var rvalue = (v[1] == undefined) ? v[0].substr(0, j) + rv: v[0].substr(0, j) + rv + "." + v[1];

if (rvalue.charCodeAt(0) == 44)

{

rvalue = rvalue.substr(1);

}

id.value = rvalue;

}

function tran2(id)

{

var v;

v = id.value.replace(/,/g,"");

alert(v);

}

</script>

<style type="text/css">

<!--

body,td,th,input {

font-size: 12px;

}

-->

</style></head>

<body>

<input name="tt" type="text" id="tt" size="80" onkeyup="tran(this)" />

<br/>

<input name="tt" type="text" id="tt2" size="80" onkeyup="tran2(this)" />

</body>

</html>

运行测试:

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="content-type" content="text/html; charset=gb2312" />

<title>js 格式化金额的代码---www.jb51.net</title>

<script language="javascript">

function tran(id)

{

var v, j, sj, rv = "";

v = id.value.replace(/,/g,"").split(".");

j = v[0].length % 3;

sj = v[0].substr(j).toString();

for (var i = 0; i < sj.length; i++)

{

rv = (i % 3 == 0) ? rv + "," + sj.substr(i, 1): rv + sj.substr(i, 1);

}

var rvalue = (v[1] == undefined) ? v[0].substr(0, j) + rv: v[0].substr(0, j) + rv + "." + v[1];

if (rvalue.charCodeAt(0) == 44)

{

rvalue = rvalue.substr(1);

}

id.value = rvalue;

}

function tran2(id)

{

var v;

v = id.value.replace(/,/g,"");

alert(v);

}

</script>

<style type="text/css">

<!--

body,td,th,input {

font-size: 12px;

}

-->

</style></head>

<body>

<input name="tt" type="text" id="tt" size="80" onkeyup="tran(this)" />

<input name="tt" type="text" id="tt2" size="80" onkeyup="tran2(this)" />

</body>

</html>

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

赞助本站

人工智能实验室

相关热词: 金额数字 格式化 js

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港