Ios NSExpression返回不正确的值
我使用NSExpression进行一些计算,但是如果输入值很大,它会返回不正确的值,例如 e、 g 如果方程式是@“9*9”,那么它返回18。 如果输入较大,为什么返回不正确的值Ios NSExpression返回不正确的值,ios,Ios,我使用NSExpression进行一些计算,但是如果输入值很大,它会返回不正确的值,例如 e、 g 如果方程式是@“9*9”,那么它返回18。 如果输入较大,为什么返回不正确的值 如果我误解了,请纠正我。我认为这是因为您的计算结果是一个不能存储在64位数据类型中的数字。64位数据类型有符号整数数据类型只能将数字存储到-2^63到2^63-1您表达式的结果明显高于最大限制 NSString *equation = @"9999999999999 * 9999999999999" NSExpress
如果我误解了,请纠正我。我认为这是因为您的计算结果是一个不能存储在64位数据类型中的数字。
64位
数据类型有符号整数数据类型只能将数字存储到-2^63
到2^63-1
您表达式的结果明显高于最大限制
NSString *equation = @"9999999999999 * 9999999999999"
NSExpression *expression = [NSExpression expressionWithFormat:equation]; //
id result = [expression expressionValueWithObject:nil context:nil]; //result is "-2537784290115403775"