【发布时间】:2019-05-27 14:45:47
【问题描述】:
是否有任何额外的函数可以将 NumberFormatter (Swift 5) 与描述 C 格式的字符串一起使用?
示例:12.3456 (Float) with "%6.3f" (C format as String) 应该变成 12.345 (also Float)
很遗憾,Apple 的 documentation 没有提供任何示例。
我知道maximumIntegerDigits 和maximumFractionDigits 并且我知道您可以将“%6.3”与NSLog 和String(format: .......) 一起使用,但是NumberFormatter 是否有一个函数可以将数字直接转换为浮点数或双精度数(不是字符串),使用指定的 C 格式?
【问题讨论】:
-
你的问题的答案是否定的。
-
为什么需要将格式说明符转换为数字格式符?为什么不能只使用 NumberFormatter 的方法来得到你想要的结果呢?
-
可惜了,那我要自己拆String了。感谢您的快速回复!
-
1) NumberFormatter 不接受 printf 样式的格式。 – 2) NumberFormatter 将数字转换为字符串,反之亦然,但不能将数字转换为数字。 – 3)
12.3456和12.345都不能完全表示为浮点数,因此您的任务将(几乎)总是导致舍入错误。 -
@rmaddy 我的应用程序有一个表格,每个单元格中都有一个 TextField。用户可以在 TextField 中输入一个数字,然后我根据 C 格式字符串格式化该数字。我正在从服务器下载此格式信息,每个单元格的格式信息可能不同,因此我不能只预定义“maximumFractionDigits”。
标签: ios swift nsnumberformatter