0

我有 NSString @"200 * (1 + (5 / 100))"

当我把它放入NSExpression *expression = [NSExpression expressionWithFormat:myString];

我它NSLog expression返回字符串。但是,当我打电话时[[expression expressionValueWithObject:nil context:nil] doubleValue],我得到了200.

不能NSExpression处理两组括号?使用的另一个解决方案是NSExpression- 我不想使用任何 MathLibraries,因为我只有非常简单的数学方程。

谢谢

4

1 回答 1

2

当然它可以处理两组括号,你的问题只是你的值的类型。

当您编写时,200 * (1 + (5 / 100))所有这些值都被视为整数,并使用整数算术。这意味着5 / 100评估为0,这就是为什么你得到200结果。如果是5.0 / 100(注意小数点),那么您将得到正确的结果,因为该除法将被视为浮点除法。

于 2014-06-27T08:44:49.930 回答