我有一个用户输入,可以包含从3.06 OR 3,06的浮点值
我们所在的文化是法语,因此当用户输入3.06时,我在该值上运行一个float.tryParse,它不会被转换为3.06变成一个新的变量(float类型)
我们所在的文化是法语,因此当用户输入3.06时,我在该值上运行一个float.tryParse,它不会被转换为3.06变成一个新的变量(float类型)
// inputUsedAmount.Value from UI is : 3.06 float usedAmount = 0.0f; float.TryParse(inputUsedAmount.Value,out usedAmount); // returns false
我可以简单地从UI中输入的金额替换“”.到“,”,但是有没有通过文化这样做的优雅/更好的方式?
谢谢
解决方法
您可以使用采用格式提供程序的
overload.您可以通过法国文化信息:
string value; NumberStyles style; CultureInfo culture; double number; value = "1345,978"; style = NumberStyles.AllowDecimalPoint; culture = CultureInfo.CreateSpecificCulture("fr-FR"); if (Double.TryParse(value,style,culture,out number)) Console.WriteLine("Converted '{0}' to {1}.",value,number); else Console.WriteLine("Unable to convert '{0}'.",value); // Displays: // Converted '1345,978' to 1345.978.