我正在编写一个银行系统,我的客户希望在十进制数字分隔符中同时支持俄罗斯和美国的数字标准。分别.
和,
。
现在只能,
正常工作。可能是因为 Web 服务器的操作系统格式(设置了俄语)。
字符串之类2000.00
的抛出FormatException
:
输入字符串的格式不正确。
如何解决?我有以下两个想法:
protected void FormView1_ItemInserting(object sender, FormViewInsertEventArgs e)
{
var txtAmount = (TextBox)((FormView)sender).FindControl("txtAmount"));
txtAmount.Text = txtAmount.Text.Replace('.', ',');
}
或者
protected void FormView1_ItemInserting(object sender, FormViewInsertEventArgs e)
{
var ru = new CultureInfo("ru-RU");
var en = new CultureInfo("en-US")
decimal d;
var txtAmount = (TextBox)((FormView)sender).FindControl("txtAmount"));
if (!Decimal.TryParse(value, NumberStyles.Any, ru, out d)
&& Decimal.TryParse(value, NumberStyles.Any, en, out d)
{
// data isn't in Russian format but is in American
txtAmount.Text = d.ToString(ru);
}
}
还有其他想法吗?