【发布时间】:2020-12-12 21:09:21
【问题描述】:
我正在尝试格式化数字,以便小数点后始终有 4 位数字。例如:
1 // 1.0000
0 // 0.0000
1.23 // 1.2300
1.234 // 1.2340
1.2345 // 1.2345
1.23456 // 1.2346 **[edited]**
我尝试了以下各种组合:
let formatter = NumberFormatter()
formatter.usesSignificantDigits = true // I believe this the default so not required
formatter.numberStyle = .decimal
formatter.maximumSignificantDigits = 4
formatter.minimumSignificantDigits = 4
formatter.maximumFractionDigits = 4
formatter.minimumFractionDigits = 4
let p = formatter.string(from: NSNumber(value: percentage))
debugPrint("p = \(p)")
但在其中两种情况下,我得到的是:
0 // 0.000
0.0123456 // 0.01234
这是一个例子:
和调试输出:
"p = 0.9375"
"p = 0.000"
"p = 0.03125"
"p = 0.000"
"p = 0.03125"
我错过了什么?
[我以为我前段时间在这里看到了很好的解释,但再也找不到了——如果有人能放一个链接,那也太好了!]
【问题讨论】:
-
你的格式适合我。
-
好吧,现在我不知道该觉得自己多蠢还是少蠢!我在 OP 中添加了一些细节。我就是不知道哪里出了问题!
-
尝试使用
string(for:),这样您就不需要先创建NSNumber -
@Joakim Danielson 这当然让事情变得更容易 - 谢谢!不幸的是,它没有修复格式...
标签: ios swift formatting nsnumberformatter nsformatter