带点减去Int的Int值

时间:2016-10-27 10:18:28

标签: ios swift string int

我想听听是否可以减去两个数字,当一个值在数字的末尾包含一个(。)时。

我有这样的价值:

var numberOne: String = "21."
print(Int(numberOne) - 1)

这是不可能的,它不起作用。那我怎么能这样做呢?

3 个答案:

答案 0 :(得分:2)

var numberOne: String = "21."
print(Int(Double(numberOne)!) - 1)

您不能将带有点的字符串转换为int,但可以将其转换为Float或Double,这些可以转换为Int。

答案 1 :(得分:1)

不可以,因为Int(numberOne)转换为.会失败。

Double / Float将有效:

var numberOne: String = "21."
print(Double(numberOne)! - 1) // 20.0
print(Float(numberOne)! - 1) // 20.0

答案 2 :(得分:0)

其他答案侧重于使用中间浮点转换。另一种方法(假设您要将String实例转换为Int实例)是将字符串的非小数部分分开并使用它(尝试)初始化整数:

import Foundation

var numberOne: String = "21."

if let numberAsInt = Int(numberOne.components(separatedBy: ".").first ?? "x") {
    print(numberAsInt - 1) // 20
}