【发布时间】:2016-04-02 17:58:05
【问题描述】:
我正在尝试编写一个函数来将成千上万的数字呈现为 K 和 M 例如:
1000 = 1k
1100 = 1.1k
15000 = 15k
115000 = 115k
1000000 = 1m
这是我到目前为止的地方:
func formatPoints(num: Int) -> String {
let newNum = String(num / 1000)
var newNumString = "\(num)"
if num > 1000 && num < 1000000 {
newNumString = "\(newNum)k"
} else if num > 1000000 {
newNumString = "\(newNum)m"
}
return newNumString
}
formatPoints(51100) // THIS RETURNS 51K instead of 51.1K
如何让这个功能工作,我错过了什么?
【问题讨论】:
-
你正在做整数除法,只是把余数扔掉。你可能想转换成双打来做你的数学。
-
使用
NSByteCountFormatter代替您自己的代码。 -
我不会很快,但从 Obj-C 的角度来看,我会说您使用
Int值作为输入,所以num / 1000可能不会返回任何小数。 -
看看stackoverflow.com/questions/35854069/…(以及链接到的线程)。
标签: ios swift numbers swift2 format