将C#Web应用程序更改为西班牙语时,计算无效

时间:2017-06-01 05:26:58

标签: c# globalization

我正在开发一个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="." />

很多地方。如您所见,它只允许(。)而不允许(,)因此用户将无法输入十进制数字。是否有可能在英语文化中进行所有计算并以西班牙语显示应用程序?

1 个答案:

答案 0 :(得分:0)

您可以尝试更改当前线程的小数点分隔符。

Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator = ".";
Thread.CurrentThread.CurrentUICulture.NumberFormat.NumberDecimalSeparator = ".";