【问题标题】:Parsing float fails on iOS simulator在 iOS 模拟器上解析浮点数失败
【发布时间】:2020-02-27 01:41:28
【问题描述】:

当我尝试在真实设备上将字符串解析为浮点数时,它成功,但在模拟器上失败。 两者都在 iOS 13.1 上。 比如“81,5”在真机上转换为81.5,在模拟器上转换为815

public static float StrToFloatDef(string value, float defValue)
{
      value = value.Replace('.', ',');

      float floatValue;

      if (float.TryParse(value.Trim(), out floatValue) == false)
           floatValue = defValue;

      return floatValue;
}

【问题讨论】:

  • 小数点分隔符会因您的语言环境而异。您的模拟器和您的设备很可能没有使用相同的区域设置

标签: ios xamarin xamarin.ios ios-simulator


【解决方案1】:

你说得对,杰森。

我强制逗号作为分隔符,现在它运行良好

float.TryParse(value.Trim(), NumberStyles.Any, new NumberFormatInfo() { NumberDecimalSeparator = "," }, out floatValue)

【讨论】:

    【解决方案2】:

    您可能没有将两个设备设置为相同的本地化。 有些使用句点作为小数分隔符,有些使用逗号。

    float.Parse(value, CultureInfo.InvariantCulture.NumberFormat);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-01
      • 2021-11-30
      • 2020-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多