Ios 用浮点数乘以UInt64

Ios 用浮点数乘以UInt64,ios,macos,swift,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\u after 我尝试过几种不同的类型铸造,但我

我在操场上有以下代码:

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\u 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.

cast
test
转换为
Double

var test3 = 1.5 * Double(test)

这很有效,谢谢!我用解释更新了我的帖子。不过,我希望有更好的方法来做到这一点。