【发布时间】:2018-01-21 19:57:57
【问题描述】:
目前正在开发一个对我来说非常有用的简单功能..
例如: 如果我有 1000 个,它将打印出 1.0K,或者 1,000,000 将是 1M,直到这里一切正常,
如果我想把1,000,000,000变成1B呢?
我尝试了以下 ->
func formatPoints(from: Int) -> String {
let number = Double(from)
let thousand = number / 1000
let million = number / 1000000
let billion = number / 1000000000
if million >= 1.0 {
return "\(round(million*10)/10)M"
} else if thousand >= 1.0 {
return "\(round(thousand*10)/10)K"
} else if billion >= 1.0 {
return ("\(round(billion*10/10))B")
} else {
return "\(Int(number))"}
}
print(formatPoints(from: 1000000000))
但它返回1000.0M,而不是1B
谢谢!
【问题讨论】:
-
那是因为你先检查数百万。
-
你的逻辑没有多大意义。为什么对于 1000 它使用 minimumFraction 数字 = 1 (1.0K) 而对于 1_000_000 它使用 0 (1M)?
标签: swift