float.Parse在小数和逗号上失败
当我尝试这一行时:
float f = float.Parse(val, System.Globalization.NumberStyles.AllowDecimalPoint | System.Globalization.NumberStyles.AllowThousands);
其中val是一个设置为“5.267”而没有引号的字符串,我收到此错误:
FormatException:未知的char :. System.Double.Parse(System.String s,NumberStyles样式,IFormatProvider提供程序)System.Single.Parse(System.String s,NumberStyles样式)
所以我尝试将小数点更改为逗号,如:5,267并得到此错误:
FormatException:Unknown char :,System.Double.Parse(System.String s,NumberStyles style,IFormatProvider provider)System.Single.Parse(System.String s,NumberStyles style)
我….不….明白。 据我所知,我做得对。 这是一件简单的事情,为什么它会给我这样的悲伤呢?
Parse具有文化意识。 如果您当地的文化有不同的要求,那么您可能想要传递文化或其他格式提供者。尝试使用CultureInfo.InvariantCulture
。 如果你这样做,你将不需要十进制选项。
float f = float.Parse(val, System.Globalization.NumberStyles.AllowThousands, CultureInfo.InvariantCulture);