我想聽聽是否可以減去兩個數字,當一個值在數字結尾處包含(。)時。帶點的Int值減去一個Int
我有這樣一個值:
var numberOne: String = "21."
print(Int(numberOne) - 1)
那是不可能的,這是行不通的。那我該怎麼做?
我想聽聽是否可以減去兩個數字,當一個值在數字結尾處包含(。)時。帶點的Int值減去一個Int
我有這樣一個值:
var numberOne: String = "21."
print(Int(numberOne) - 1)
那是不可能的,這是行不通的。那我該怎麼做?
不,這是不可能的,因爲由於.
轉換爲Int(numberOne)
將失敗。
Double
/Float
將工作:
var numberOne: String = "21."
print(Double(numberOne)! - 1) // 20.0
print(Float(numberOne)! - 1) // 20.0
var numberOne: String = "21."
print(Int(Double(numberOne)!) - 1)
你不能用一個點字符串轉換爲一個int,但你可以將它轉換爲浮動或雙,並且這些可以被轉換成int類型。
這是最好的答案。 –
這個答案與我的回答@DuncanC有何不同? –
其他答案專注於使用中間浮點轉換。另一種(給你希望你的String
實例轉換爲一個Int
實例)是分離字符串的非小數部分,並用它(試圖)初始化一個整數
import Foundation
var numberOne: String = "21."
if let numberAsInt = Int(numberOne.components(separatedBy: ".").first ?? "x") {
print(numberAsInt - 1) // 20
}
'debugPrint((雙人間(的Numberone )?? 0) - 1)'打印你'20.0'。 – holex