2017-06-08 5 views
1

私は結果5.4を期待この予期しない結果が

System.out.print((9/5) * 3); 

に問題があるが、それは3を返す(整数にフローティング)。なぜこうなった?

+1

すべての3つの数字がそう整数であり、結果として整数が得られます。 –

+6

あなたの期待は間違っています:) –

答えて

8

9/5整数演算で評価ので、9.0/5 * 3を書き込む1.

に等しいだされた共通の修正です。 (用語の係数の1つをdoubleに昇格させると、倍精度浮動小数点で評価が行われます)。

1

System.out.print((9.0/5)* 3);あなたはそれが整数でない実数を返します整数の除算を行い、Javaで

+3

もう少し説明を追加する方が良いでしょう。 :) –

1

    1代わりに、あなたの問題を解決するために 1.8

    9/5リターンは次の2つのソリューションを持っています

  1. の代わりに実数を使用しますので、9.0/5
  2. を使用するか、数値をdoubleに変換することができますそれはあなたがその答えを得るために9.0または5.0を行うことができる整数の結果が得られますので、すべての数値は、整数がある
1

... 下記のとおり。..

System.out.print((9.0/5) * 3); OR 
System.out.print((9/5.0) * 3); 
+0

(ii)あなたが '(9/5)* 3.0'にリファクタリングしている人に脆弱であるため、括弧を削除する傾向があります。しかし、アップヴォートをすべて同じようにしてください。 – Bathsheba