我在操场上有以下代码:
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。
答案 0 :(得分:6)
将test
投放到Double
var test3 = 1.5 * Double(test)