将两个点分成两个数字

Sac*_*hin 5 swift swift-playground

所以我试图快速分割一个数字,我试图在互联网上搜索这个但是没有成功.首先,我将从以下数字开始:

var number = 34.55
Run Code Online (Sandbox Code Playgroud)

从这个数字,我想通过从点分割创建两个单独的数字.所以输出应该是这样的:

var firstHalf = 34
var secondHalf = 55
Run Code Online (Sandbox Code Playgroud)

或者输出也可以更容易.我怎样才能做到这一点?

roy*_*wie 5

最简单的方法是首先将double转换为字符串:

var d = 34.55
var b = "\(d)" // or String(d)
Run Code Online (Sandbox Code Playgroud)

然后用全局split函数拆分字符串:

var c = split(b) { $0 == "." }   // [34, 55]
Run Code Online (Sandbox Code Playgroud)

您还可以将此功能烘焙为双精度:

extension Double {
    func splitAtDecimal() -> [Int] {
        return (split("\(self)") { $0 == "." }).map({
            return String($0).toInt()!
        })
    }
}
Run Code Online (Sandbox Code Playgroud)

这将允许您执行以下操作:

var number = 34.55
print(number.splitAtDecimal())   // [34, 55]
Run Code Online (Sandbox Code Playgroud)