私は銀行システムを作成していますが、顧客は 10 進数の区切り文字でロシアとアメリカの両方の数値標準をサポートすることを望んでいます。それぞれ.
と,
.
,
正常に動作するようになりました。おそらくWebサーバーのOS形式(ロシア語が設定されている)のせいでしょう。
次のような文字列が2000.00
スローされますFormatException
:
入力文字列は、正しい形式ではありませんでした。
それを修正する方法は?次の 2 つのアイデアがあります。
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);
}
}
他のアイデアはありますか?