美文网首页
2018-11-23 Swift 开发 千分位的添加

2018-11-23 Swift 开发 千分位的添加

作者: 自流虎 | 来源:发表于2018-11-23 12:20 被阅读0次

// 添加千分位的函数(解决余数不足三位要补0的BUG)

    func addMicrometerLevel(valueSwift:String) ->String{

        // 判断传入参数是否有值

        ifvalueSwift.characters.count!=0{

            /**

             创建两个变量

             integerPart : 传入参数的整数部分

             decimalPart : 传入参数的小数部分

             */

            varintegerPart:String?

            vardecimalPart =String.init()

            // 先将传入的参数整体赋值给整数部分

            integerPart =  valueSwift

            // 然后再判断是否含有小数点(分割出整数和小数部分)

            ifvalueSwift.contains(".") {

                letsegmentationArray = valueSwift.components(separatedBy:".")

                integerPart = segmentationArray.first

                decimalPart = segmentationArray.last!

            }

            /**

             创建临时存放余数的可变数组

             */

            letremainderMutableArray =NSMutableArray.init(capacity:0)

            // 创建一个临时存储商的变量

            vardiscussValue:Int32=0

            /**

             对传入参数的整数部分进行千分拆分

             */

            repeat{

                lettempValue = integerPart!asNSString

                varremainderValue =0

                    //解决余数不足三位要补0的BUG

                iftempValue.intValue >= 1000{

                    // 获取商

                    discussValue = tempValue.intValue / 1000

                    // 获取余数

                    remainderValue =Int(tempValue.intValue % 1000)

                    // 将余数一字符串的形式添加到可变数组里面

                    varremainderStr =String.init(format:"%d", remainderValue)

                    ifremainderStr.count==1{

                        remainderStr ="00"+ remainderStr

                    }else if remainderStr.count==2{

                        remainderStr ="0"+ remainderStr

                    }

                    remainderMutableArray.insert(remainderStr, at:0)

                    // 将商重新复制

                    integerPart =String.init(format:"%d", discussValue)

                }else{

                    // 获取余数

                    remainderValue =Int(tempValue.intValue%1000)

                    // 将余数一字符串的形式添加到可变数组里面

                    letremainderStr =String.init(format:"%d", remainderValue)

                    remainderMutableArray.insert(remainderStr, at:0)

                    // 将商重新复制

                    integerPart =String.init(format:"%d", discussValue)

                    break

                }

            }whilediscussValue>0

            // 创建一个临时存储余数数组里的对象拼接起来的对象

            vartempString =String.init()

            // 根据传入参数的小数部分是否存在,是拼接“.” 还是不拼接""

            letlastKey = (decimalPart.characters.count==0?"":".")

            /**

             获取余数组里的余数

             */

            foriin0..

                // 判断余数数组是否遍历到最后一位

                let  param = (i != remainderMutableArray.count-1?",":lastKey)

                tempString = tempString +String.init(format:"%@%@", remainderMutableArray[i]as!String,param)

            }

            //  清楚一些数据

            integerPart =nil

            remainderMutableArray.removeAllObjects()

            // 最后返回整数和小数的合并

            returntempStringasString+ decimalPart

        }

        returnvalueSwift

    }

相关文章

网友评论

      本文标题:2018-11-23 Swift 开发 千分位的添加

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