通过Float乘以UInt64

时间:2014-06-05 10:38:36

标签: ios macos swift

我在操场上有以下代码:

import Foundation

var test : UInt64 = NSEC_PER_SEC // NSEC_PER_SEC is a CUnsignedLongLong
var test2 = 2 * test // this works
var test3 = 1.5 * test // this doesn't work

我试图获得一个Int64值,该值是用于Float的某些dispatch_after秒表示的纳秒数。

我尝试了几种类型转换,但我似乎无法想出一个获得此结果的方法。

任何建议都将不胜感激!

解决方案

以下答案中的解决方案(感谢@shucao)将执行以下操作:

var test3 = 1.5 * Double(test)

有趣的是,Swift也将1.5视为Double。因此,例如,工作:

var flt : Float = 1.5
var test3 = flt * Double(test) // doesn't work
var test3 = Double(flt) * Double(test) // does work

因此,为了在任意秒数内找到纳秒数,必须将这两个值转换为Double s。

1 个答案:

答案 0 :(得分:6)

test投放到Double

var test3 = 1.5 * Double(test)