这是我想要解决的一个例子:
let equation = (5-2) * (10-5) / (4-2) * (10-5)
print (equation)
//35
打印的结果是35。但正确的结果是1,5,有什么问题吗?
发布于 2017-09-30 11:00:54
这应该是可行的:
let numerator: Double = (5-2) * (10-5)
let denumerator: Double = (4-2) * (10-5)
首先计算分子和数字。最后的结果是:
print(result)
let result: Double = numerator/denumerator
//1.5
发布于 2017-09-30 11:16:54
您的表达式不正确,我希望您希望结果1.5put '(‘正确*和/ Precedence到执行是相同的,但()大于*和//
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
只需注意编程语言中的操作符优先性
发布于 2017-09-30 11:55:39
正如@araf回答的那样,您应该在编程语言中注意操作符的优先级。
它们遵循BODMAS的一条简单规则,按以下顺序进行评估:
在您的场景中:
let equation = (5-2) * (10-5) / (4-2) * (10-5)
产出如下:
3*5/2*4 = 15/2*5 = 7*5 = 35
@L.Stephan提出了一种更好的计算分子和数字的方法,然后再进行除法。
要了解更多信息,可以查看以下链接:
https://stackoverflow.com/questions/46502059
复制相似问题