Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSExpression返回不正确的值_Ios - Fatal编程技术网

Ios NSExpression返回不正确的值

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

我使用NSExpression进行一些计算,但是如果输入值很大,它会返回不正确的值,例如

e、 g

如果方程式是@“9*9”,那么它返回18。 如果输入较大,为什么返回不正确的值


如果我误解了,请纠正我。

我认为这是因为您的计算结果是一个不能存储在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"