ios – Swift 2.0将1000格式化为友好的K.

ios – Swift 2.0将1000格式化为友好的K.,第1张

概述我正在尝试编写一个函数来向K和M提供数千和数百万 例如: 1000 = 1k1100 = 1.1k15000 = 15k115000 = 115k1000000 = 1m 这是我到目前为止的地方: func formatPoints(num: Int) -> String { let newNum = String(num / 1000) var newNumString 我正在尝试编写一个函数来向K和M提供数千和数百万
例如:
1000 = 1k1100 = 1.1k15000 = 15k115000 = 115k1000000 = 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

如何让这个功能起作用,我缺少什么?

解决方法
func formatPoints(num: Double) ->String{    let thousandNum = num/1000    let millionNum = num/1000000    if num >= 1000 && num < 1000000{        if(floor(thousandNum) == thousandNum){            return("\(Int(thousandNum))k")        }        return("\(thousandNum.roundtoplaces(1))k")    }    if num > 1000000{        if(floor(millionNum) == millionNum){            return("\(Int(thousandNum))k")        }        return ("\(millionNum.roundtoplaces(1))M")    }    else{        if(floor(num) == num){            return ("\(Int(num))")        }        return ("\(num)")    }}extension Double {    /// Rounds the double to decimal places value    func roundtoplaces(places:Int) -> Double {        let divisor = pow(10.0,Double(places))        return round(self * divisor) / divisor    }}

如果数字是完整的,更新的代码现在应该不返回.0.现在应该输出1k而不是1.0k.我只是检查了双倍和它的地板是否相同.

我在这个问题中找到了双重扩展:
Rounding a double value to x number of decimal places in swift

总结

以上是内存溢出为你收集整理的ios – Swift 2.0将1000格式化为友好的K.全部内容,希望文章能够帮你解决ios – Swift 2.0将1000格式化为友好的K.所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1103960.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存