如何让NSNumberFormatter显示无穷大符号(∞)?

时间:2012-02-23 18:58:53

标签: objective-c cocoa nsnumberformatter

我的文本字段映射到模型对象上的NSUInteger类型属性。只要属性等于NSUIntegerMax,文本字段NSNumberFormatter就会显示-1。我宁愿显示

我已尝试将“格式( - )”值(从IB)设置为,但结果为∞1。有一些方法可以定义遇到无穷大时要使用的符号......但它永远不会被使用。如果不是NSUIntegerMax,哪个值实际上会产生无穷大符号?

2 个答案:

答案 0 :(得分:4)

整数空间中没有“无穷大”。只有花车具有“无限”的概念(以及“NaN”或“非数字”)。 NSUIntegerMax绝对不是无穷大(它无限小于无穷大)。

如果您想将有限整数映射到字符串,那么您需要转换为浮点数并使用INFINITY,或者您需要子类NSNumberFormatter来覆盖{ {1}}做你想做的事。或者,如果您愿意,可以在更高级别进行管理,只需在将其交给stringForObjectValue:之前检查一下。

答案 1 :(得分:1)

NSUIntegerMax不是无穷大,只是一个很大的数字。浮点数(floatdouble)确实有特殊值来表示无穷大,对于那些数字格式化程序将使用给定的无穷大符号。

要为NSUIntegerMax提供无穷大符号,您必须编写自己的数字格式化程序或单独处理此案例。