Swift: 乘法和括号计算不起作用

Swift: Multiplication and brackets calculation doesn't work

这是我要求解的示例方程:

let equation = (5-2) * (10-5) / (4-2) * (10-5)
print (equation)
//35

打印的结果是35,但正确的结果是1,5。怎么了?

这应该有效:

let numerator: Double = (5-2) * (10-5)
let denumerator: Double = (4-2) * (10-5)

拳头你计算分子和分母。最后结果:

print(result)
let result: Double = numerator/denumerator
//1.5

你的表述不正确希望你要结果1.5 把 '(' 正确 * 和 / 执行的优先级相同但是 () 大于 * 和 /

let equation = ((5-2) * (10-5)) / ((4-2) * (10-5))
print (equation)

如果你把乘法放在另一个 '()' 中,那么你会得到一个结果,也许正确的部分是整数,所以它会自动转换为整数类型

let equation = Double ( (5 - 2) * (10 - 5)) / Double ((4 - 2) * ( 10 - 5 ))
print (equation)

此代码将打印 1.5

只需查看编程语言中的运算符优先级

正如@araf 回答的那样,您应该注意编程语言中的运算符优先级。

遵循以下顺序评估的 BODMAS 的简单规则:

  1. 括号
  2. 订单
  3. 除法和乘法(从左到右)
  4. 加法和减法(从左到右)

在您的场景中:

let equation = (5-2) * (10-5) / (4-2) * (10-5)

输出结果如下:

3*5/2*4 = 15/2*5 = 7*5 = 35

@L.Stephan提出了一种更好的方法,分别计算分子和分母,然后执行除法部分。

要了解更多信息,您可以查看此 link: