1

在数学上,任何指数为 0 的数字都应该等于 1(我的补救数学研究向我保证)。

但是这段代码产生了 5:

[NSDecimalNumber decimalNumberWithMantissa:5 exponent:0 isNegative:NO]

这是计算机编程中的标准吗——可以依赖于在未来的 Cocoa 版本中没有被“纠正”吗?

4

1 回答 1

8

您可能还没有阅读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)。

于 2010-01-13T12:22:01.090 回答