vb.net Convert.ToDecimal不工作
我正在写一个读取gps坐标的程序。我以字符串格式获取gps坐标,如下所示: 429659 153167 然后我想把这些字符串转换成小数。在我的开发PC上,它工作正常,但只要我把软件放在另一台PC上,它就不会转换成十进制。它输出不带逗号的值,如下所示: 429659 153167 这是我的密码:vb.net Convert.ToDecimal不工作,vb.net,decimal,Vb.net,Decimal,我正在写一个读取gps坐标的程序。我以字符串格式获取gps坐标,如下所示: 429659 153167 然后我想把这些字符串转换成小数。在我的开发PC上,它工作正常,但只要我把软件放在另一台PC上,它就不会转换成十进制。它输出不带逗号的值,如下所示: 429659 153167 这是我的密码: gpsLatDecimalString = gpsData(2).Substring(2, gpsData(2).Length - 2).Replace(".", ",") gpsLongDecimalS
gpsLatDecimalString = gpsData(2).Substring(2, gpsData(2).Length - 2).Replace(".", ",")
gpsLongDecimalString = gpsData(4).Substring(3, gpsData(4).Length - 3).Replace(".", ",")
'LAT: 25.69953
'LONG: 28.23881
gpsLatDecimal = System.Convert.ToDecimal(gpsLatDecimalString)
gpsLongDecimal = System.Convert.ToDecimal(gpsLongDecimalString)
看起来您得到的坐标是XXXXX(点)YYYY的形式,这可能是针对不同区域性配置操作系统的PC中的一个问题 不要试图用逗号替换该点,而是在调用
Convert.ToDecimal
gpsLatDecimalString = gpsData(2).Substring(2, gpsData(2).Length - 2)
gpsLongDecimalString = gpsData(4).Substring(3, gpsData(4).Length - 3)
gpsLatDecimal = Convert.ToDecimal(gpsLatDecimalString, CultureInfo.InvariantCulture)
gpsLongDecimal = Convert.ToDecimal(gpsLongDecimalString, CultureInfo.InvariantCulture)
现在,在您的PC上(可能配置了逗号作为十进制分隔符),转换器会被告知使用不变量文化
来理解字符串,而在另一台配置了小数点分隔符的PC上,这是默认值,CultureInfo
参数无效