我不敢相信我自己无法弄清楚这个问题,而且我也无法在网上找到答案,但是......
在长时间从事 Dart 和 Java 工作之后,我正在使用 Swift 工作。
我有一种情况,组件 A 提供 Float 值,而组件 B 需要 Double 值。我不知道如何将浮点数转换/转换/重新实例化为双精度浮点数!
示例:
let f:Float = 0.3453
let d:Double = f
该赋值不起作用,即使 f 是一个 Int,它也会起作用。这让我感到非常惊讶,因为 Float 不如 Double 精确(占用更少的内存)。
我也尝试过:
let d:Double = f as! Double
XCode 警告这将“总是失败”。
还尝试过:
let d:Double = Double(from: f)
XCode 警告“f 应该是解码器类型”
必须有一个非常明显/简单的解决方案。
正如@workingdog所说,这会起作用:
let f: Float = 0.3453
let d: Double = Double(f)
print(d) // prints 0.34529998898506165