What describes NSNumberFormatter -maximumSignifica

2020-02-12 08:08发布

There's no text in the documentation about what that means, but it sounds very important to understand in order to not run into trouble. Does someone know what that is all about the "significant digits" of a number?

2条回答
戒情不戒烟
2楼-- · 2020-02-12 08:55

Although the other answer on this question links to a correct explanation of the concept of significant digits in general, NSNumberFormatter's {uses|minimum|maximum}SignificantDigits properties have nothing to do with precision of calculations.

The significant digits are the group of digits in a number from the first nonzero digit to the last nonzero digit, inclusive, usually unless trailing zeroes are fractional. Restricting output to a specific number of significant digits is useful if a relative (percentage) error is known or desired.

First of all, the minimumSignificantDigits and maximumSignificantDigits have no effect unless usesSignificantDigits is set to YES. If this is the case, their effect is probably most easily explained using examples.

Let's take the numbers a = 123.4567, b = 1.23, and c = 0.00123:

Assuming minimumSignificantDigits = 0, 1 or 2:

If maximumSignificantDigits = 3, then a will be formatted as "123", b as "1.23", and c as "0.00123".

If maximumSignificantDigits = 4, then a will be formatted as "123​.5", b as "1.23" and c as "0.00123".

If maximumSignificantDigits = 2, then a will be formatted as "12​0", b as "1.2" and c as "0.0012".

Assuming minimumSignificantDigits = 4:

If maximumSignificantDigits = 4, then a will be formatted as "123.​5", b as "1.23​0", and c as "0.00123​0".

Note: The 45 conversions occur due to the round-to-nearest mode, as the digit following the 4 in a is 5.

查看更多
一纸荒年 Trace。
3楼-- · 2020-02-12 08:56

See here for a nice tutorial on significant digits. Very simple explanation would be: the number of digits that are used for calculations within your app.

查看更多
登录 后发表回答