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

发布于 2024-10-10 14:08:27 字数 319 浏览 3 评论 0 原文

我从 API 获取纬度/经度字符串,格式为“37.766713”或“-122.428938”(请参阅​​ http ://en.wikipedia.org/wiki/Decimal_ Degrees )并希望将它们解析为双精度,但是, double.TryParse(string, out doubleInstance) 给了我一个双精度“37766713,0”。有没有什么优雅的方法来指定解析的输入格式?执行 string.Replace(".", ",") 会有点痛。

I get lat/lon strings from an API back in the format e.g. '37.766713' or '-122.428938' (see http://en.wikipedia.org/wiki/Decimal_degrees) and want to parse these into a double each, however, double.TryParse(string, out doubleInstance) gives me a double of '37766713,0'. Is there any elegant way to specify the input format for the parsing? Doing string.Replace(".", ",") hurts a little bit.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

愁杀 2024-10-17 14:08:27

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

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

This is a culture issue. Try using the InvariantCulture.

double d = Double.Parse("37.766713", CultureInfo.InvariantCulture);
赴月观长安 2024-10-17 14:08:27

叹息..应该看起来更长一点..这可以解决问题:Double.TryParse() 输入的小数分隔符与系统小数分隔符不同

Sigh.. should have looked a little longer.. this does the trick: Double.TryParse() input decimal separator different than system decimal separator

倾城月光淡如水﹏ 2024-10-17 14:08:27

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

Take a look of the Convert.ToDouble() or Double.parse(), you can specify a IFormartProvider for the specific number format.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文