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 的简单规则:
- 括号
- 订单
- 除法和乘法(从左到右)
- 加法和减法(从左到右)
在您的场景中:
let equation = (5-2) * (10-5) / (4-2) * (10-5)
输出结果如下:
3*5/2*4 = 15/2*5 = 7*5 = 35
@L.Stephan提出了一种更好的方法,分别计算分子和分母,然后执行除法部分。
要了解更多信息,您可以查看此 link:
这是我要求解的示例方程:
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 的简单规则:
- 括号
- 订单
- 除法和乘法(从左到右)
- 加法和减法(从左到右)
在您的场景中:
let equation = (5-2) * (10-5) / (4-2) * (10-5)
输出结果如下:
3*5/2*4 = 15/2*5 = 7*5 = 35
@L.Stephan提出了一种更好的方法,分别计算分子和分母,然后执行除法部分。
要了解更多信息,您可以查看此 link: