美文网首页Swift 基础
关于 iOS 字符串转 Float,Double 的不同国家小数

关于 iOS 字符串转 Float,Double 的不同国家小数

作者: 幸运者_Lucky | 来源:发表于2020-07-11 00:42 被阅读0次

    先上代码

    extension String {
        func double() -> Double? {
            guard count > 0 else { return nil }
            
            let returnValue:Double? = Double(self)
            if let returnValue = returnValue  {
                return returnValue
            } else {
                if contains(",") {
                    let newString = replacingOccurrences(of: ",", with: ".")
                    return Double(newString)
                } else if contains(".") {
                    let newString = replacingOccurrences(of: ".", with: ",")
                    return Double(newString)
                }
                return nil
            }
        }
    }
    

    正常我们 String 转 Double 直接就 Double("4.5") 就 ok 了, 而且看起来也没有任何问题,但是小数点,这个符号不仅仅是使用 .国际上使用阿拉伯数字国家与地区主要采用两种小数点符号:“句点”和“逗号”。汉语地区和大多的英语地区都使用“句点”,但是大多的其他欧洲国家和其前殖民地都使用“逗号”。 这段文字摘抄上面的小数点wiki,也就是说,一些欧洲国家是这样表示的 5,4,所以当你手机语言切换到以逗号为小数点的国家时,Double("4.5")就返回 nil 了,所以再看上面那部分代码,如果是正常可以转数字的字符串就直接转了,否则做下面处理。

    相关文章

      网友评论

        本文标题:关于 iOS 字符串转 Float,Double 的不同国家小数

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