DE十进制在asp.net中更改为逗号值问题

我在我的asp.net应用程序中使用德语UI文化。 我正在改变我的应用程序的UI文化基于在下拉列表中选择的语言,在下拉选择索引更改我使用此代码

Thread.CurrentThread.CurrentCulture = new CultureInfo(this.lstLanguage.SelectedValue);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(this.lstLanguage.SelectedValue);

下拉菜单如下

<asp:DropDownList cssClass="ddllanguage" ValidationGroup="b" runat="server" ID="lstLanguage" AutoPostBack="True"  OnSelectedIndexChanged="LstLanguage_SelectedIndexChanged" meta:resourcekey="lstLanguage">                    
  <asp:ListItem Value="en-US" Text="English" meta:resourcekey="ListItemResource2" ></asp:ListItem>
  <asp:ListItem Value="de-DE" Text="Deutsch" meta:resourcekey="ListItemResource3"></asp:ListItem>
</asp:DropDownList>

我的问题是在将语言更改为de-DE之后,我的应用程序中的所有十进制值都将被更改为逗号,所有十进制数字(如5.12)都将以5,12作为结果,所有十进制值都将更改为逗号。 如何获取小数值,因为它没有逗号。


您可以按照以下代码更改数字格式信息

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

尝试下面的代码来解析文化中的十进制值。

string str = "50,3";
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
double d = double.Parse(str, Thread.CurrentThread.CurrentCulture.NumberFormat);

它给出结果d = 50.3


在德国文化中,Decimal被“,”

德国文化使用“。” 作为组分隔符和“,”作为小数分隔符

请参阅维基链接


Thread.CurrentUICulture旨在用于用户界面,它是用于显示文本,方向等的语言。
Thread.CurrentCulture旨在用于解析/格式化东西。 日期和时间,数字和字符串比较(例如)。

如果您只想更改UI语言(并且保留其他所有与Web服务器的Thread.CurrentUICulture ),则只需修改Thread.CurrentUICulture

链接地址: http://www.djcxy.com/p/75109.html

上一篇: DE decimal changing to comma value issue in asp.net

下一篇: What does CultureInfo.InvariantCulture mean?