【问题标题】:Double.Parse(string) not working correct when device language is not english monodroid当设备语言不是英语 monodroid 时,Double.Parse(string) 无法正常工作
【发布时间】:2013-10-12 18:50:45
【问题描述】:

我的 android 应用程序中有这段代码:

double lat = Double.Parse (latCoordinate);

当设备语言是英语时,一切都是正确的,但是当我选择其他语言时,它就不起作用了。

在某些语言中,它表示 char '.'无效。在其他一些解析器中,双字符串 bad.for example parse "-95.22222" tp -9.522222 .

我该如何解决这个问题?

【问题讨论】:

  • 哎呀,看起来你被区域设置错误打了脸。看here
  • 也许在这里回答:stackoverflow.com/questions/7477995/…
  • @Shark - 什么是错误?该链接并不表示使用不同的语言环境存在错误。
  • @ChrisDunaway 有些人这样写一千,有些人像1,000这样写em,有些人写成1000,还有一些人写成1.000甚至one-thousand,而且三者必须相同,以编程方式。这三个在不同的语言环境下都是不同的。这不是一个错误,但与期望的行为相去甚远。我发布的链接包含有关如何使用Double.Parse 并获得所需行为的解决方法:)
  • @Shark - 您的第一条评论似乎表明 Double.Parse 中可能存在错误。我现在看到,您提到的“错误”实际上是在用户的代码中。

标签: c# android xamarin.android


【解决方案1】:

您应该将cultureInfo 设置为en-us,如下所示:

return d.ToString (new CultureInfo ("en-US"));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-14
    • 1970-01-01
    相关资源
    最近更新 更多