1

我正在转换stringFloat/ Decimalinmonotouch但它给出了格式异常。我正在使用Decimal.Parse(), Convert.ToDecimal()。请为此转换提供任何解决方案。

decimal d = Convert.ToDecimal(UIDevice.CurrentDevice.SystemVersion, CultureInfo.InvariantCulture); 

decimal d = Decimal.Parse(UIDevice.CurrentDevice.SystemVersion, CultureInfo.InvariantCulture);
4

2 回答 2

2

SystemVersion是一个包含多个点.字符的字符串。这将无法正确解析浮点数或小数。

根据您的需要,您可以在解析之前修改字符串。例如,如果您想7.0从字符串中取出,7.0.2那么您可以使用子字符串(直到第二个.字符)。

OTOH,如果您需要做的是版本检查(最常见的操作),那么您只需要这样做:

if (UIDevice.CurrentDevice.CheckSystemVersion (7,0)) {
   // do this in iOS7+
} else {
   // do this before iOS7
}
于 2013-10-04T12:48:00.983 回答
0

System.Version有一个构造函数,可以解析string2 到 4 个组件,形式为:

major.minor[.build[.revision]]

因此,要解析,UIDevice.CurrentDevice.SystemVersion您可以执行以下操作:

var version = new Version (UIDevice.CurrentDevice.SystemVersion);

if (version.Major >= 7) {
    //iOS7+
} else {
    // anything else
}

如果您想找出特定版本,请使用它。否则@poupou 的解决方案很棒而且更具有iOS 意识。

于 2013-10-04T18:39:53.013 回答