数学上任何指数为0的数字都应该等于1(我的补习数学研究向我保证)。
但是这段代码产生了5:
[NSDecimalNumber decimalNumberWithMantissa:5 exponent:0 isNegative:NO]
这是计算机编程的标准 - 在未来的Cocoa版本中可以依赖于不被“纠正”吗?
答案 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)。