如何将大于 Int.max 的浮点值转换为 Swift 中的 Int

How to convert a floating point value greater than Int.max to Int in Swift

我想要以下浮点值的整数值:

var floatingPointValue = NSDate().timeIntervalSince1970 * 1000

我不关心这个浮点数的整数值实际上是整数还是字符串。

Int64 足以容纳几百万的时间间隔 以毫秒为单位的年:

let milliSeconds = Int64(someDate.timeIntervalSince1970 * 1000)
let milliSecondsString = String(milliSeconds)

Int64 足以容纳您需要的值

let floatingPointValue = NSDate().timeIntervalSince1970 * 1000
let intValue = Int64(floatingPointValue)

关键部分是在 32 位平台上使用 Int64 而不是 Int。它将允许您使用 8 个字节的内存(从 −9223372036854775808 到 +9223372036854775807)

Int64(NSDate().timeIntervalSince1970 * 1000)