我正在使用一種服務來發送返回值類型爲String
的服務,其中包含浮點數如Double
,例如「1240.86」。 我想將它轉換爲Int
,當我嘗試轉換像這樣Int(stringObject)
轉換失敗時,值有浮點。 我該如何施展它? 謝謝!將字符串值從服務器格式化爲雙格式轉換爲
0
A
回答
3
嘗試在兩個步驟:
if let aDouble = Double(someString) {
let someInt = Int(aDouble)
}
或可能:
let someInt = Int(Double(someString) ?? 0)
儘管後者是有點雜牌的,因爲你可能不希望強制如果的0
值該字符串不是有效的數字。
2
你可以使用的Optional
的map(_:)
方法任選鏈轉換(初始化通過,具體地)從String
到Double
後跟一個從Double
到Int
並有條件地將得到的整數的情況下,結合它不是nil
(即成功地轉換):
let str = "1240.86"
if let number = Double(str).map(Int.init) {
// number is of type Int and, in this example, of value 1240
}
0
您可以通過點.
分隔字符串:
func printInt(from str: String) {
let intValue = Int(str.components(separatedBy: ".")[0]) ?? 0
print(intValue)
}
printInt(from: "1234.56") // 1234
printInt(from: "1234") // 1234
printInt(from: "0.54") // 0
printInt(from: ".54") // 0
printInt(from: "abc") // 0
相關問題
- 1. 將字符串轉換爲格式爲
- 2. 如何在C++中將字符串值轉換爲雙格式
- 3. 將格式化字符串轉換爲雙精度字符串,反之亦然
- 4. 將字符串轉換爲哈希字符串:值格式
- 5. C#將任何格式字符串轉換爲雙倍
- 6. 將C++ printf格式轉換爲VB .NET字符串格式
- 7. 格式化長字符串轉換爲短字符串C#
- 8. 將散列字符串轉換爲格式化的數字?
- 9. 將字符串轉換爲浮動並將其格式化(C#)
- 10. 將.net格式的字符串轉換爲java格式的字符串
- 11. 如何將.NET標準格式字符串轉換爲Excel格式字符串
- 12. sql date轉換爲字符串格式
- 13. 字符串轉換爲相同格式
- 14. 轉換爲UTF8格式的字符串
- 15. 字符串轉換爲CSV格式
- 16. 字符串轉換爲日期格式
- 17. 字符串轉換爲任何格式
- 18. 將字符串數組轉換爲JSON格式的字符串
- 19. 將字符串轉換爲SendKeys.Send()格式的字符串
- 20. 如何將「Double」轉換爲VBScript中的格式化字符串
- 21. 將Jayson的JSON格式化的字符串轉換爲JsonObject
- 22. 將格式化的字符串轉換爲Javascript中的整數
- 23. 使用yyyyMMdd格式化將字符串轉換爲DateTime
- 24. 將列表轉換並格式化爲erlang中的字符串
- 25. 將格式化的字符串轉換爲Java中的HTML
- 26. 將字符串轉換爲格式化日期
- 27. 將時間轉換爲C#中的格式化字符串
- 28. Python將格式化的字符串轉換爲列表
- 29. C++將格式化的字符串轉換爲流
- 30. 將int轉換爲縮短的格式化字符串
強制注意,這不是鑄造而是轉換。你有沒有試過*將字符串轉換成雙精度並從那裏開始? – luk2302
這就是我的解決方案,但我正在尋找更優雅的方式 –
在這裏嘗試:https://stackoverflow.com/a/39658447/6479530 –