我试图将字符串“8.7”转换为数字,但是我所有的尝试将它转换为87而不是8.7。这是我的尝试。C#将字符串转换为数字
string wind_kph = "8.7"
if (Convert.ToDouble(wind_kph) > 60.00f)
真正
if ((int)Convert.ToDouble(wind_kph) > 60.00f)
真正
if (Convert.ToDecimal(wind_kph) > 60.00f)
真正
我试图将字符串“8.7”转换为数字,但是我所有的尝试将它转换为87而不是8.7。这是我的尝试。C#将字符串转换为数字
string wind_kph = "8.7"
if (Convert.ToDouble(wind_kph) > 60.00f)
真正
if ((int)Convert.ToDouble(wind_kph) > 60.00f)
真正
if (Convert.ToDecimal(wind_kph) > 60.00f)
真正
可以使用InvariantCulture
针对使用dot
作为小数点分隔
您可以找到double.Parse(string)
方法的文档更详细的信息,相关部分是:
的小号参数使用是当前线程初始化的
NumberFormatInfo
对象格式化信息解读文化。有关更多信息,请参见CurrentInfo
。要使用其他文化的格式信息解析字符串,请调用Double.Parse(String, IFormatProvider)
或Double.Parse(String, NumberStyles, IFormatProvider)
方法。
谢谢,这是问题所在。我的语言选择只是承认一个,而不是一个。 – Aman
这可能是一种文化问题。如果没有明确指定解析函数使用当前线程文化。要指定特定的文化,您可以将第二个参数发送到double.Parse
函数。以你的情况为“。”你可以使用InvariantCulture
。
double.Parse("8.7", CultureInfo.InvariantCulture);
您是否有任何可能干扰解析的本地化设置?我相信小数点在某些文化中是逗号。你的代码看起来像*应该*工作。 – BradleyDotNET
你的当地文化是什么?许多欧洲文化把“8.7”称为“87”,将“8.7”称为“8.7”;我怀疑你可以通过明确指定一种文化(可能是不变的文化)来解决这个问题。 –
第一行应该是“;”终止。它如何编译w /语法错误? Rgds, –