一些说明:
“,” (半角的豆号) 如果有的话,看豆号到小数点(如果有的话)前有几位,则按几位划分整数部分
“0”(数字零) 如果该位上没有数字,就补0
“#”(井号) 如果该位上有数字就输出数字,没有则不输出格式化数值的函数
<script>
function formatNumber(number,pattern)
{
var str = number.toString();
var strInt;
var strFloat;
var formatInt;
var formatFloat;
if(/\./g.test(pattern))
{
formatInt = pattern.split('.')[0];
formatFloat = pattern.split('.')[1];
}
else
{
formatInt = pattern;
formatFloat = null;
} if(/\./g.test(str))
{
if(formatFloat!=null)
{
var tempFloat = Math.round(parseFloat('0.'+str.split('.')[1])*Math.pow(10,formatFloat.length))/Math.pow(10,formatFloat.length);
strInt = (Math.floor(number)+Math.floor(tempFloat)).toString();
strFloat = /\./g.test(tempFloat.toString())?tempFloat.toString().split('.')[1]:'0';
}
else
{
strInt = Math.round(number).toString();
strFloat = '0';
}
}
else
{
strInt = str;
strFloat = '0';
}
if(formatInt!=null)
{
var outputInt = '';
var zero = formatInt.match(/0*$/)[0].length;
var comma = null;
if(/,/g.test(formatInt))
{
comma = formatInt.match(/,[^,]*/)[0].length-1;
}
var newReg = new RegExp('(\\d{'+comma+'})','g'); if(strInt.length<zero)
{
outputInt = new Array(zero+1).join('0')+strInt;
outputInt = outputInt.substr(outputInt.length-zero,zero)
}
else
{
outputInt = strInt;
} var 
outputInt = outputInt.substr(0,outputInt.length%comma)+outputInt.substring(outputInt.length%comma).replace(newReg,(comma!=null?',':'')+'$1')
outputInt = outputInt.replace(/^,/,''); strInt = outputInt;
} if(formatFloat!=null)
{
var outputFloat = '';
var zero = formatFloat.match(/^0*/)[0].length; if(strFloat.length<zero)
{
outputFloat = strFloat+new Array(zero+1).join('0');
//outputFloat = outputFloat.substring(0,formatFloat.length);
var outputFloat1 = outputFloat.substring(0,zero);
var outputFloat2 = outputFloat.substring(zero,formatFloat.length);
outputFloat = outputFloat1+outputFloat2.replace(/0*$/,'');
}
else
{
outputFloat = strFloat.substring(0,formatFloat.length);
} strFloat = outputFloat;
}
else
{
if(pattern!='' || (pattern=='' && strFloat=='0'))
{
strFloat = '';
}
} return strInt+(strFloat==''?'':'.'+strFloat);
}
alert(formatNumber(0,''));
alert(formatNumber(12432.21,'#,###'));
alert(formatNumber(12432.21,'#,###.000#'));
alert(formatNumber(12432,'#,###.00'));
alert(formatNumber(12432.419,'#,###.0#'));</script>

解决方案 »

  1.   

    用ToString()吧,具体的我没有查,你可以查一下
      

  2.   


    using System;
    using System.Globalization;class NumberFormatInfoSample {   public static void Main() {      // Gets a NumberFormatInfo associated with the en-US culture.
          NumberFormatInfo nfi = new CultureInfo( "en-US", false ).NumberFormat;      // Displays a value with the default separator (",").
          Int64 myInt = 123456789;
          Console.WriteLine( myInt.ToString( "N", nfi ) );      // Displays the same value with a blank as the separator.
          nfi.NumberGroupSeparator = " ";
          Console.WriteLine( myInt.ToString( "N", nfi ) );   }
    }
    /* 
    This code produces the following output.123,456,789.00
    123 456 789.00
    */
      

  3.   

    回:thinkingforever(海)请问后面那.00该怎么去掉呢,因为我想显示的是文件大小如:122,343 字节
      

  4.   

    我解决了,谢谢各位:
    Dim nfi As NumberFormatInfo
                        nfi = New CultureInfo("en-US", False).NumberFormat                    Dim myint As Int64 = filename.Length.ToString()
                        accrow("ReportReviseDate") = FormatNumber(myint.ToString("N", nfi), 0) & " 字节"