在数学上,任何指数为 0 的数字都应该等于 1(我的补救数学研究向我保证)。
但是这段代码产生了 5:
[NSDecimalNumber decimalNumberWithMantissa:5 exponent:0 isNegative:NO]
这是计算机编程中的标准吗——可以依赖于在未来的 Cocoa 版本中没有被“纠正”吗?
在数学上,任何指数为 0 的数字都应该等于 1(我的补救数学研究向我保证)。
但是这段代码产生了 5:
[NSDecimalNumber decimalNumberWithMantissa:5 exponent:0 isNegative:NO]
这是计算机编程中的标准吗——可以依赖于在未来的 Cocoa 版本中没有被“纠正”吗?
您可能还没有阅读decimalNumberWithMantissa:exponent:isNegative 的文档:
指数与尾数将具有的 10 的倍数有关。
您必须了解尾数是该点右侧的值。
数字的归一化变成像 18.23 = 0.1823x10^2 --> 尾数 == 1823, exponent == 2 这样的值
看看它,看看如何使用。
讨论
参数以一种要求尾数为整数的科学计数法表示数字。因此,例如,如果要表示的数字为–12.345,则表示为12345x10^–3——尾数为12345;指数为 –3;isNegative 为 YES,如下例所示。
NSDecimalNumber *number = [NSDecimalNumber decimalNumberWithMantissa:12345
exponent:-3
isNegative:YES];
干杯,
VFN
PS:查看 Wikipedia 上的文章:浮点算术标准 (IEEE 754 - 2008)。