Cocoa:带有尾数和指数为0的NSDecimalNumber

时间:2010-01-13 12:02:03

标签: objective-c cocoa exponent nsdecimalnumber mantissa

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

但是这段代码产生了5:

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

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

1 个答案:

答案 0 :(得分:8)

您可能尚未阅读documentation for decimalNumberWithMantissa:exponent:isNegative:

指数与尾数将具有的10的倍数相关。

您必须明白尾数是该点右侧的值。

数字的归一化变为类似18.23 = 0.1823x10 ^ 2 - >的值。尾数== 1823,指数== 2

看看它,看看如何使用。

  

讨论

     

参数表示一个数字   那种科学记数法   要求尾数为   整数。所以,例如,如果   要表示的数字是-12.345,   它表达为   12345x10 ^ -3-mantissa是12345;   指数为-3;和isNegative是,   如下所示   示例

NSDecimalNumber *number = [NSDecimalNumber decimalNumberWithMantissa:12345

                                           exponent:-3

                                           isNegative:YES];

干杯,
VFN

PS:查看维基百科上的文章:浮点运算标准(IEEE 754 - 2008)。