我正在使用NSExpression进行一些计算,但是如果输入值很大,例如,它会重新调整不正确的值
例如,
NSString *equation = @"9999999999999 * 9999999999999"
NSExpression *expression = [NSExpression expressionWithFormat:equation]; //
id result = [expression expressionValueWithObject:nil context:nil]; //result is "-2537784290115403775"如果等式应该是@"9 * 9“,那么它返回18。如果输入更大,为什么它返回不正确的值。
如果我理解错了,请纠正我。
发布于 2015-01-10 19:33:52
我认为这是因为您的计算结果不能存储在
64 bit data type。64 bit数据类型signed int数据类型只能存储从-2^63到2^63-1的数字。表达式的结果明显高于最大限制。
https://stackoverflow.com/questions/27875549
复制相似问题