我正在使用一種服務來發送返回值類型爲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. 將字符串轉換爲哈希字符串:值格式
- 6. 將字符串格式轉換爲格式日期樣式
- 7. C#將任何格式字符串轉換爲雙倍
- 8. 將HHMM字符串轉換爲Java格式的GMT格式
- 9. 將C++ printf格式轉換爲VB .NET字符串格式
- 10. 格式化長字符串轉換爲短字符串C#
- 11. 將字符串轉換爲浮動並將其格式化(C#)
- 12. 將散列字符串轉換爲格式化的數字?
- 13. 將字符串格式化爲數字
- 14. 如何將.NET標準格式字符串轉換爲Excel格式字符串
- 15. 將.net格式的字符串轉換爲java格式的字符串
- 16. 如何將貨幣從字符串格式轉換爲數字格式?
- 17. 字符串轉換爲CSV格式
- 18. 轉換爲UTF8格式的字符串
- 19. 字符串轉換爲相同格式
- 20. 字符串轉換爲日期格式
- 21. 字符串轉換爲任何格式
- 22. 格式列表轉換爲字符串
- 23. sql date轉換爲字符串格式
- 24. 字符串轉換爲HH:mm格式
- 25. 將數字轉換爲格式化的字符串並再次解析格式化的字符串
- 26. 將字符串數組轉換爲JSON格式的字符串
- 27. 將字符串轉換爲SendKeys.Send()格式的字符串
- 28. 如何將NSTextView的格式化內容轉換爲字符串
- 29. 如何將「Double」轉換爲VBScript中的格式化字符串
- 30. 將列表轉換並格式化爲erlang中的字符串
強制注意,這不是鑄造而是轉換。你有沒有試過*將字符串轉換成雙精度並從那裏開始? – luk2302
這就是我的解決方案,但我正在尋找更優雅的方式 –
在這裏嘗試:https://stackoverflow.com/a/39658447/6479530 –