2017-09-30 21 views
0

動作しません。これは私が解決したいの例方程式である:スウィフト:乗算とブラケットの計算が

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

印刷された結果が35である。しかし、右結果は1.5になります。どうしましたか?

答えて

0

これは動作するはずです:

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

拳あなたは分母とdenumeratorを計算します。そして最後に結果:

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

あなたの表現が間違っている(私が正しく「(」あなたはその結果に1.5 プットをしたい願っています*および実行に/優先順位は同じですが)が大きく、より*および/

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

別に乗算を置けば「()」が自動CONVERがタイプ

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

これを整数になるよう、あなたは1は、おそらく右の部分が整数で結果を取得しますコードは@arafあなたはプログラミング言語の演算子の優先順位のために外を見るべきで答えたようにジャストプログラミング言語

0

にオペレーターの優先順位を見て1.5

を印刷します。次の順序で評価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 @は、分割部分を実行する別々分子とdenumeratorを算出した後のより良いアプローチを示唆しています。

:より多くのあなたは、このリンクをチェックすることができます知っている