我想听听是否可以减去两个数字,当一个值在数字的末尾包含一个(。)时。
我有这样的价值:
var numberOne: String = "21."
print(Int(numberOne) - 1)
这是不可能的,它不起作用。那我怎么能这样做呢?
答案 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
}