在iOS模拟器上解析浮动失败

时间:2019-10-31 16:34:01

标签: ios xamarin xamarin.ios ios-simulator

当我尝试在实际设备上将字符串解析为float时,它成功了,但是在模拟器上失败了。 两者都在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;
}

2 个答案:

答案 0 :(得分:0)

你是对的杰森。

我强制使用逗号作为分隔符,现在它可以正常工作了

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

答案 1 :(得分:0)

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

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