我们有网络应用程序,用户可以在欧洲的不同地点。
很少写这样的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,具体取决于其中的。如何以最佳方式解决此问题?
答案 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