hot*_*aw2 5 numbers type-conversion swift
Float 到 Int 的转换被记录为一个简单的方法:
let i = Int(x)
Run Code Online (Sandbox Code Playgroud)
然而,这本身是不安全的,因为如果 x 太大而无法放入整数,或者是某种 NaN,Swift 应用程序就会崩溃。
那么,将 Float 或 Double 的未知内容转换为 Int(Int32、UInt16 等)的最简单但又安全的方法是什么,例如,没有崩溃的风险?有 Int?() 类型吗?或等效的“if let”语句?
Int(exactly:)可能是您正在寻找的:
如果可以精确表示,则根据给定的浮点值创建一个整数。
如果作为源传递的值无法准确表示,则结果为零。
例子:
let x = 123e20
if let i = Int(exactly: x) {
print(i)
} else {
print("not representable")
}
Run Code Online (Sandbox Code Playgroud)
如果浮点数不是整数,这也会失败,因此您可能需要在转换之前对其进行舍入:
let x = 12.3
if let i = Int(exactly: x.rounded(.towardZero)) {
print(i)
}
Run Code Online (Sandbox Code Playgroud)
向零舍入是Int(x)可以的,您可以选择所需的舍入模式。
| 归档时间: |
|
| 查看次数: |
678 次 |
| 最近记录: |