有一个物价页面。金额输入框我使用了
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类型的。
//所以,请教各位,解决方案。怎么显示为金额格式,并能争取相加,还能保存到数据库。再显示到页面时还可以是金额格式??
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类型的。
//所以,请教各位,解决方案。怎么显示为金额格式,并能争取相加,还能保存到数据库。再显示到页面时还可以是金额格式??
如果你想当数字使用的话,最简单的就是将“,”符号replace掉就可以了,注意一点的是javascript的replace默认只会替换掉第一个“,”,如果想都替换就必须“\,\”来替换。
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%
12345.ToString("C"); //生成 ¥12,345.00
这2个就可以满足你的需要
只需要在显示的地方转换下就可以了 程序和数据库里还是数字格式
{
var varnumber=this.toString();
while(varnumber.indexOf(',')!=-1)
{
varnumber=varnumber.replace(',','');
}
return varnumber;
}
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 );
现在的问题是:12,345,678.00 使用window.form1.fld_31_7.value.replace(/,/,'')
只能除掉一个逗号,12345,678.00。
怎么才能得到正确的12345678.00 ???
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;