我有我的这个应用程序,其中一个文本字段必须像计算器显示一样。此文本字段显示的数字由函数计算。例如,如果数字是" 3.21"它应该像这样显示,有2位小数。如果数字有更多的小数位,则应显示它具有的小数位数。
文本字段允许显示10位数字。
如果数字大于9999999999(10个9),则应以科学计数法显示,例如" 4.767 E20"或类似的东西。
我想我必须使用NSNumberFormatter
来解决这个问题,但我发现我会有一系列ifs和一个复杂的NSNumberFormatter
s序列来完成这项工作,特别是对于小数地方。
我的问题是:这是要走的路还是某种NSNumberFormatter
可以自动执行此操作?
答案 0 :(得分:2)
您根本不需要使用数字格式化程序。您可以使用Swift或Objective-C中的%g格式字符串。 Swift代码如下所示:
import UIKit
var value = 0.0
for digits in 1...12 {
value = value * 10 + 9
print(String(format:"%.10g", value))
}
产生结果:
9
99
999
9999
99999
999999
9999999
99999999
999999999
9999999999
1e+11
1e+12
在Objective-C中,您使用NSString
的{{1}}方法,并使用格式字符串@“%。10g”
我的Objective-C正在生锈,但代码看起来像这样:
stringWithFormat