美文网首页
Swift 把 1234656转化成 1.23万 或1.23亿

Swift 把 1234656转化成 1.23万 或1.23亿

作者: ShineYangGod | 来源:发表于2019-12-12 17:00 被阅读0次
extension Float {

    /** 战斗力值转换 */
    var combatValues: String {

        if (self / 10000) > 1 {

            let temp = self / 10000

            if fmodf(Float(temp), 1) == 0 {

                let str = String.init(format: "%.0f", temp)

                return str + "万"

            }else if fmodf(Float(temp) * 10, 1) == 0 {

                let str = String.init(format: "%.1f", temp)

                return str + "万"

            }else{

                let str = String.init(format: "%.2f", temp)
                
                let decimal = str.componentsSeparatedByString(".")
                
                let arrayString = decimal[1]
                
                if arrayString == "00" {
                    
                    return decimal[0] + "万"
                }

                return str + "万"

            }

        }

        if (self / 100000000) > 1 {

            let temp = self / 100000000

            if fmodf(Float(temp), 1) == 0 {

                let str = String.init(format: "%.0f", temp)

                return str + "亿"

            }else if fmodf(Float(temp) * 10, 1) == 0 {

                let str = String.init(format: "%.1f", temp)

                return str + "亿"

            }else{

                let str = String.init(format: "%.2f", temp)
                
                let decimal = str.componentsSeparatedByString(".")
                
                let arrayString = decimal[1]
                
                if arrayString == "00" {
                    
                    return decimal[0] + "亿"
                }
                
                return str + "亿"

            }

        }
        
        let decimal = String.init(self).componentsSeparatedByString(".")
        
        let arrayString = decimal[1]
        
        if arrayString == "0" {
            
            return decimal[0]
        }

        return String.init(self)

    }

}

字符串扩展

extension String {
    
    func attributedString(font:CGFloat)->NSMutableAttributedString{
    
        let attributedS = NSMutableAttributedString(string: self)
        
        if self.containsString("万") || self.containsString("亿") {
            
            let normalAttributes = [NSFontAttributeName:UIFont.systemFontOfSize(font)]
            
            attributedS.addAttributes(normalAttributes, range: NSMakeRange(self.characters.count - 1,1))
            
        }
        
        return attributedS
    
    }
    
}

调用:label.attributedText = Float(number).combatValues

相关文章

  • Swift 把 1234656转化成 1.23万 或1.23亿

    字符串扩展 调用:label.attributedText = Float(number).combatValues

  • 截屏并保存到本地

    1>截图 2> 保存图片 3>回调 4>使用Swift注意点:Swift由于是直接将OC转化成Swift语法的,所...

  • Swift 制作.framework遇到的问题

    把swift制作的.framework导入创建的工程,但是工程可能是swift或object-c的,在swift工...

  • string转换

    Swift 3.0版本适用1.CGFloat 转化成StringdateCell.detailDateLabel....

  • 数组和字符串之间的相互转化

    explode() - 把字符串转化成数组;implode() - 把数组转化成字符串; explode() 把字...

  • C++中 !!的用法

    总结:!!可以把整数转化成0或1两种形式。适合用在返回返回值时。使结果唯二(0或1)

  • 把演绎的问题转化成事实的描述

    “把别人的问题转化成自己的问题,把过去的问题转化成未来的目标,把演绎的问题转化成事实的描述。”这是解决问题的...

  • swift

    1.@objc 作用:把函数或属性编译进项目-Swift文件中,这样在OC调用Swift的方法的时候就不会报找不到...

  • Swift之||,&&,??的实现及原理

    前言 上篇Swift中@autoclosure模拟了或运算,这篇继续探讨或运算,看看Swift中或运算是如何实现的...

  • About Swift

    https://docs.swift.org/swift-book/ 关于swift 无论对于手机、桌面、服务端或...

网友评论

      本文标题:Swift 把 1234656转化成 1.23万 或1.23亿

      本文链接:https://www.haomeiwen.com/subject/dvptnctx.html