开发者

Cocoa: NSDecimalNumber with mantissa and exponent of 0

Mathemati开发者_Python百科cally any number with an exponent of 0 is supposed to equal 1 (my remedial math research assures me).

But this code produces 5:

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

Is this something standard in computer programming -- that can be relied upon not being "corrected" in future Cocoa versions?


You probably haven't read the documentation for decimalNumberWithMantissa:exponent:isNegative:

The exponent is related to the multiple of 10 that the mantissa will have.

You have to understand that the mantissa is the value on the right hand of the point.

The normalization of the number turns a value like 18.23 = 0.1823x10^2 --> mantissa == 1823, exponent == 2

Take a look at it to see how to use.

Discussion

The arguments express a number in a kind of scientific notation that requires the mantissa to be an integer. So, for example, if the number to be represented is –12.345, it is expressed as 12345x10^–3—mantissa is 12345; exponent is –3; and isNegative is YES, as illustrated by the following example.

NSDecimalNumber *number = [NSDecimalNumber decimalNumberWithMantissa:12345

                                           exponent:-3

                                           isNegative:YES];

Cheers,
VFN

PS: Check out the article on Wikipedia for: Standard for Floating-Point Arithmetic (IEEE 754 - 2008).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜