我有NSString @"200 * (1 + (5 / 100))",
当我把它放进NSExpression *expression = [NSExpression expressionWithFormat:myString];里
NSLog expression i,它返回字符串。然而,当我调用[[expression expressionValueWithObject:nil context:nil] doubleValue]时,我会得到200的结果。
NSExpression不能处理两组括号吗?是使用NSExpression的另一个解决方案--我不想使用任何MathLibraries,因为我只有非常简单的数学方程。
谢谢
发布于 2014-06-27 08:44:49
当然,它可以处理两组括号,您的问题只是值的类型。
当您编写200 * (1 + (5 / 100))时,所有这些值都被视为整数,并使用整数算术。这意味着5 / 100的计算结果是0,这就是为什么得到200作为结果的原因。如果是5.0 / 100 (注意小数点),那么您将得到正确的结果,因为该除法将被视为浮点除法。
https://stackoverflow.com/questions/24447442
复制相似问题