有一个物价页面。金额输入框我使用了
function tran(idname)
{    
  if(Number(document.getElementById(idname).value))
  {
    
    document.getElementById(idname).value=Number(document.getElementById(idname).value).toLocaleString();    
  }
}//输入1234,自动转化为1,234.00  
//这个没有问题
//我要将两个这样的数值相加,只加逗号前的数值。
//如:一个输入框是1,234.00  还有一个是2,000.00
//使用parseFloat(window.form1.text1.value)+parseFloat(window.form1.text2.value)
//结果是3,还不是正确的3234,只加了逗号前的数值;
//而且,像1,234.00不能保存到我的数据库,字段时float类型的。
//所以,请教各位,解决方案。怎么显示为金额格式,并能争取相加,还能保存到数据库。再显示到页面时还可以是金额格式??

解决方案 »

  1.   

    回复:Edisoncat(http://www.Edisonliu.com)沙发舒服啊?给点提示阿
      

  2.   

    你通过Number转换了千分位数字的话,所产生的1,234.00就是字符型了。
    如果你想当数字使用的话,最简单的就是将“,”符号replace掉就可以了,注意一点的是javascript的replace默认只会替换掉第一个“,”,如果想都替换就必须“\,\”来替换。
      

  3.   

    12345.ToString("n"); //生成 12,345.00 
    12345.ToString("C"); //生成 ¥12,345.00 
    12345.ToString("e"); //生成 1.234500e+004 
    12345.ToString("f4"); //生成 12345.0000 
    12345.ToString("x"); //生成 3039 (16进制) 
    12345.ToString("p"); //生成 1,234,500.00% 
      

  4.   

    附:12345.ToString("n"); //生成 12,345.00 
        12345.ToString("C"); //生成 ¥12,345.00 
    这2个就可以满足你的需要
    只需要在显示的地方转换下就可以了 程序和数据库里还是数字格式
      

  5.   

    String.prototype.replace2 = function()
            {
                var varnumber=this.toString();
                while(varnumber.indexOf(',')!=-1)
                {
                  varnumber=varnumber.replace(',','');
                }
                return varnumber;
            }
      

  6.   

    string str = "123000.00";
    CultureInfo ci = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone();
    NumberFormatInfo nbf = ci.NumberFormat;
    nbf.CurrencyGroupSeparator = ",";
    nbf.CurrencySymbol = "";
    ci.NumberFormat = nbf;
    System.Threading.Thread.CurrentThread.CurrentCulture = ci;
    double n = double.Parse( str  );
      

  7.   

    感谢朋友们的帮助,问题快解决了。
    现在的问题是:12,345,678.00  使用window.form1.fld_31_7.value.replace(/,/,'')
    只能除掉一个逗号,12345,678.00。
    怎么才能得到正确的12345678.00    ???
      

  8.   

    用我的方法,
    string str = "123,000.00";
    string str1 = "345,000.00"
    CultureInfo ci = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone();
    NumberFormatInfo nbf = ci.NumberFormat;
    nbf.CurrencyGroupSeparator = ",";
    nbf.CurrencySymbol = "";
    ci.NumberFormat = nbf;
    System.Threading.Thread.CurrentThread.CurrentCulture = ci;
    double n = double.Parse( str  );
    double n1 = double.Parse( str1 );
    double n2 = n1 + n;
      

  9.   

    value.replace(/\,/g,"")   //参数g是指全局替换