如何知道在Windows系统"."
设置中使用了哪个小数符号","
,"'"
,Region/Formats/Additional Settings/Customize Format
。
在我的系统中,它是一个点"."
,如果在我的代码中,我有这个标记用于双数字插入,文本框用于计算,例如,部分只允许一个小数点:
if ((e.KeyChar == ',') && ((sender as TextBox).Text.IndexOf(',') > -1))
在我的系统上,它正常工作,代码中没有使用哪个标记,以及在自定义格式设置,点,逗号或撇号中使用哪个十进制符号,没有相互对应的事项。
但是在另一台计算机上,同一个程序会抛出异常"input string was not in correct format"
。
然后我在这个系统上检查了两个版本的程序,一个用点'.'
,另一个用逗号','
,与我的系统不同,只能使用符号对应自定义格式设置的版本,我一个或另一个例外。
首先,我无法理解为什么在我的系统上没有问题,在设置中使用哪个标记,以及为什么它在另一个系统上是重要的。
所以我不确定我是否必须在这种情况下使用替换方法,因为这个标记在Math
中的计算阶段起作用,在我需要知道之前,在特定系统中使用了哪个符号设置为防止它与相应的符号我猜,但我不知道该怎么做
答案 0 :(得分:1)
看起来您想将用户输入转换为十进制?
您可以直接使用Double.TryParse来执行此操作。
result = Double.TryParse(input, NumberStyles.Any,
CultureInfo.CurrentCulture.NumberFormat,
out number);
有一个msdn article涵盖了此内容。
如果你想手动解析输入,那么CultureInfo.CurrentCulture.NumberFormat类将一组分隔符作为其属性的一部分,具体取决于你期望的输入类型。