这是我用的一个函数,你参考一下
function toMoney(number)
{
if(isNaN(number)) return number;
var pointValue = "";
pointPos = number.indexOf(".");
if(pointPos>0) {
pointValue = number.substring(pointPos,number.length);
number = number.substring(0, pointPos);
}
if (number.length<= 3)
return (number == '' ? '' : number+pointValue);
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+pointValue);
}
}
function toMoney(number)
{
if(isNaN(number)) return number;
var pointValue = "";
pointPos = number.indexOf(".");
if(pointPos>0) {
pointValue = number.substring(pointPos,number.length);
number = number.substring(0, pointPos);
}
if (number.length<= 3)
return (number == '' ? '' : number+pointValue);
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+pointValue);
}
}
http://www.google.cn/search?hl=zh-CN&q=%E6%95%B0%E5%AD%97%E8%BD%AC%E6%88%90%E8%B4%A7%E5%B8%81%E6%A0%BC%E5%BC%8F+js&meta=&aq=f&oq=这么多,你自己看哪个方法适合你
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script language="javascript">
/**********************************************************************
IN:
decimalNum - the number of decimal places to format the number to
bolLeadingZero - true / false - display a leading zero for
numbers between -1 and 1
bolParens - true / false - use parenthesis around negative numbers
bolCommas - put commas as number separators.
RETVAL:
The formatted number!
**********************************************************************/
Number.prototype.format = function(decimalNum,bolLeadingZero,bolParens,bolCommas)
{
var tmpNum = this;
var iSign = this < 0 ? -1 : 1; // Get sign of number
// Adjust number so only the specified number of numbers after
// the decimal point are shown.
tmpNum *= Math.pow(10,decimalNum);
tmpNum = Math.round(Math.abs(tmpNum))
tmpNum /= Math.pow(10,decimalNum);
tmpNum *= iSign; // Readjust for sign
// Create a string object to do our formatting on
var tmpNumStr = new String(tmpNum); // See if we need to strip out the leading zero or not.
if (!bolLeadingZero && this < 1 && this > -1 && this != 0)
if (this > 0)
tmpNumStr = tmpNumStr.substring(1,tmpNumStr.length);
else
tmpNumStr = "-" + tmpNumStr.substring(2,tmpNumStr.length);
// See if we need to put in the commas
if (bolCommas && (this >= 1000 || this <= -1000)) {
var iStart = tmpNumStr.indexOf(".");
if (iStart < 0)
iStart = tmpNumStr.length; iStart -= 3;
while (iStart >= 1) {
tmpNumStr = tmpNumStr.substring(0,iStart) + "," + tmpNumStr.substring(iStart,tmpNumStr.length)
iStart -= 3;
}
} // See if we need to use parenthesis
if (bolParens && this < 0)
tmpNumStr = "(" + tmpNumStr.substring(1,tmpNumStr.length) + ")"; return tmpNumStr; // Return our formatted string!
}
</script>
<script language="javascript">
var n = 13456789.12345;
alert(n.format(2,true,true,true ));
</script>
</head>
<body>
</body>
</html>
var a = 12345678910 ;
var b = 123 ;
var c = -12345678910 ;
var d = -123 ;
var e = 1234.00 ;alert(myFormat(a,2));//12,345,678,910.00
alert(myFormat(b,2));//123.00
alert(myFormat(c,2));//-12,345,678,910.00
alert(myFormat(d,2));//-123.00
alert(myFormat(e,2));//-1,234.00
function myFormat(num,w)
{
var t=num>0?num:Math.abs(num);
var str=parseFloat(num).toFixed(w).toString();
var il = str.length-w-1;
var n = 1;
while(t>1000)
{
t/=1000;
str=str.substring(0,il-n*3)+","+str.substr(il-n*3);
++n;
}
return str;
}
</script>