浮动数学方程式没有按预期工作

时间:2017-01-08 08:32:04

标签: swift math floating-point swift3

print(String(Float(2 * (10 / 9))))

为什么此代码打印" 2.0"? 使用计算器," 2 *(10/9)"等于2.222222 .....

2 个答案:

答案 0 :(得分:4)

您正在使用整数进行计算,并将(整数)结果转换为Float

使用浮点类型(Double)进行计算:

print(String(Float(2.0 * (10.0 / 9.0))))

不需要施放:

print(2.0 * (10.0 / 9.0))

答案 1 :(得分:1)

2.0 *(10.0 / 9.0)会给出预期的结果。

在你的情况下,Swift首先根据Integers进行计算(result = 2),然后将其转换为float(result = 2.0),并将其转换为String(result =“2.0”)

要获得正确的结果,请阅读:

print(String(Float(2.0 * (10.0 / 9.0))))

然后您可以省略两种类型的对话:

print(2.0 * (10.0 / 9.0))