NumberFormatter 最小值不能正常工作?

NumberFormatter Minimum Not Working Correctly?

我配置了一个基本的 NumberFormatter:

let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .spellOut

然后我设置最小变量:

numberFormatter.minimum = 1

其中,according to the documentation 设置:

The lowest number allowed as input by the receiver.

但是当我运行进行以下转换时:

numberFormatter.string(from: -1)

我得到错误的输出:

minus one

为什么没有确认最小值?

IIRC,最小值仅防止用户在数字格式化程序附加到文本字段时输入较小的数字。它仍然允许您自己格式化较低的数字。

您可能需要做的是确保您自己的值不低于最小值。

文档用误导性术语 input 表示,它不允许将值低于最小值的字符串转换为数字。这是因为很难测试 string 是否具有较低的值,尤其是。本地化形式

你从数字到字符串的另一种方式。对于这种情况,很容易测试自己是否满足边界。因此数字格式化程序不检查边界。