NSNumberFormatter -maximumSignificantDigits是什么意思?

5

文档中没有关于这个意思的文字,但是理解它非常重要,以免遇到麻烦。有人知道什么是数字的“有效数字”吗?

2个回答

17

虽然这个问题的另一个答案提供了关于有效数字概念的正确解释,但NSNumberFormatter{uses|minimum|maximum}SignificantDigits属性与计算精度无关。

有效数字是指数字中从第一个非零数字到最后一个非零数字(通常除非尾随的零是小数),限制输出到特定数量的有效数字,如果已知或希望有一个相对误差(百分比)是有用的。

首先,只有在将usesSignificantDigits设置为YES时,minimumSignificantDigitsmaximumSignificantDigits才会生效。如果是这种情况,则可以使用示例最容易地解释它们的作用。

我们以数字a = 123.4567b = 1.23c = 0.00123为例:

假设minimumSignificantDigits = 012

如果maximumSignificantDigits = 3,那么a将被格式化为"123",b为"1.23",c为"0.00123"。

如果maximumSignificantDigits = 4,那么a将被格式化为"123​.5",b为"1.23",c为"0.00123"。

如果maximumSignificantDigits = 2,那么a将被格式化为"12​0",b为"1.2",c为"0.0012"。

假设minimumSignificantDigits = 4

如果maximumSignificantDigits = 4,那么a将被格式化为"123.​5",b将被格式化为"1.23​0",而c将被格式化为"0.00123​0"。
注意:在a中,在4后面的数字为5时,4 → 5转换是由于四舍五入模式导致的。

0

请参考这里,了解关于有效数字的好教程。简单来说,有效数字是指在您的应用程序中用于计算的数字位数。


当我只是用格式化程序进行显示时,我不需要关心minimumSignificantDigits或maximumSignificantDigits吗? - HelloMoon
正确,那是我的理解。 - Henrico Dolfing

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接