我真的不明白'双'意味着什么。我正在尝试编写suvat - mechanics方程的基本代码。
let displacement = (initialVelocity*time) + (0.5*(acceleration*(time*time)))
等式是s = ut + 1/2at^2
let initialVelocity = 3
let acceleration = 2
let time = 5
let finalVelocity = initialVelocity + (acceleration * time)
print ("The final Velocity is (finalVelocity)")
let half = 0.5
let accelerationTimeSquared = acceleration * (time * time)
let displacement = (initialVelocitytime) + (0.5 * (acceleration * (time * time)))
print("The displacement is (displacement)")
“Double”代表双精度浮点数。这与数字如何存储在内存中,以十进制数字表示的精度以及它可以跨越的范围有关。来自the Swift 2.2 language documentation
“Double表示64位浮点数。”和“Double的精度至少为15位小数”
针对您的具体问题,请考虑以下代码:
let initialVelocitytime = 6
let acceleration = 4.5
let time = 3.5
let displacement = Double(initialVelocitytime) + (0.5*(acceleration*(time*time)))
print(displacement)
在这个例子中,我有混合类型initialVelocitytime
(这是一个Int)和(0.5*(acceleration*(time*time)))
的结果(评估为Double)。为了使用+来添加它们,我将initialVelocityType转换为Double值,如下所示:Double(initialVelocitytime)
。每当您想要将Int类型(没有小数位,例如14或-212)与Double类型混合时,您可以以这种方式转换Int变量。如果你的一个变量(例如加速度或时间)是一个Int,那么你也希望以这种方式投射它,即Double(acceleration)
,或者总计:
let displacement = Double(initialVelocitytime) + (0.5*(Double(acceleration)*(time*time)))
双精度是浮点数,具有更高的精度,例如小数位。您通常必须转换Int才能使用Double执行操作。见this question