格式化货币编号取决于语言

时间:2017-11-14 09:42:01

标签: c# asp.net visual-studio-2013 localization

我们有网络应用程序,用户可以在欧洲的不同地点。

很少写这样的5,5编号,而在文本框中写的很少像5.5

我们尝试使用下面的数字

double priceOfITem = 0;
double.TryParse(((TextBox)tabTest.Rows[0].Cells[3].Controls[0]).Text.Replace(".", ","), out priceOfITem )

但这会使输出为55,这是完全错误的。

我尝试过priceOfITem= Convert.ToDouble(string.Format(Thread.CurrentThread.CurrentCulture, "{0:#.##}",(((TextBox)tabTest.Rows[0].Cells[0].Controls[0]).Text)));

如果我键入5.5并且如果我键入5,5,那么它将转换为55。

有些用户可以键入5,5,有些用户可以键入5.5,具体取决于其中的。如何以最佳方式解决此问题?

1 个答案:

答案 0 :(得分:0)

我建议您使用CultureInfo类解析数字。您需要提交用户的文化e。 G。来自浏览器设置(访问hibernate doc)。

在C#-part中,尝试以下代码段:

string deNumber = "5,5";
string usNumber = "6.8";
Console.WriteLine(double.Parse(deNumber, new CultureInfo("de-DE")));
Console.WriteLine(double.Parse(usNumber, new CultureInfo("en-US")));

控制台输出:

5.5
6.8