指定double.TryParse(..)数字格式?

时间:2011-01-03 16:19:03

标签: .net parsing formatting double

我以API格式从API获取lat / lon字符串,例如'37 .766713'或'-122.428938'(参见http://en.wikipedia.org/wiki/Decimal_degrees)并希望将它们分别解析为double,但是,double.TryParse(string,out doubleInstance)给出了'37766713,0'的两倍。有没有优雅的方法来指定解析的输入格式?执行string.Replace(“。”,“,”)会有点伤害。

3 个答案:

答案 0 :(得分:5)

这是一个文化问题。尝试使用InvariantCulture

double d = Double.Parse("37.766713", CultureInfo.InvariantCulture);

答案 1 :(得分:2)

签署..应该看着我>小更长..这就是诀窍:Double.TryParse() input decimal separator different than system decimal separator

答案 2 :(得分:1)

看一下Convert.ToDouble()Double.parse(),您可以为特定的数字格式指定IFormartProvider。