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

时间:2015-02-11 13:35:53

标签: ios swift floating-point

我希望得到以下浮点值的整数值:

var floatingPointValue = NSDate().timeIntervalSince1970 * 1000

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

3 个答案:

答案 0 :(得分:25)

Int64足以容纳数百万的时间间隔 年数以毫秒计算:

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

答案 1 :(得分:1)

Int64足以保存您需要的值

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

答案 2 :(得分:1)

您应使用/,因为Int64返回例如1561124475.900897之后,结果是您乘以1000,就得到1561124475900。32位元拱上的整数最大为2147483647

例如,您可能在iPhone 5(32位弓)上遇到此问题,但在5S(32位弓)上没有问题

了解更多here