我正在开发一个Web应用程序,我必须更改我的应用程序以支持西班牙语(它是英文版)。现在计算不正确。
为了显示计算中的问题,我创建了另一个Web应用程序并将其当前文化设置为“es-ES”。我有一个文本框,其文本我已硬编码为40.00,如下所示:
<asp:TextBox ID="txtNumber" Text="40.00" runat="server" ></asp:TextBox>
当我尝试转换它时,我遇到了问题:
Convert.ToDecimal(txtNumber.Text); //4000
decimal.Parse(txtNumber.Text, CultureInfo.InvariantCulture); //40,00
这不是我的预期。 decimal.parse是正确的,但我想要(。)而不是(,)。由于我使用了
这一事实,改变大型应用程序的每个控件都很痛苦 <ajaxtoolkit:filteredtextboxextender id="FilteredTextBoxExtender1" runat="server"
targetcontrolid="txtNumber" filtertype="Custom, Numbers" validchars="." />
答案 0 :(得分:0)
您可以尝试更改当前线程的小数点分隔符。
Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator = ".";
Thread.CurrentThread.CurrentUICulture.NumberFormat.NumberDecimalSeparator = ".";