2016-05-06 9 views
0

となるので、画像の幅を800(高さは何でもかまいません)に拡大縮小するはずのこの小さな機能を書きました。Java:整数をより大きな整数で除算すると0

しかし - 私は大きな整数(例えば1080)による整数(800)を分割するとき、結果が0

これを何原因として出てきますか?

  double ratio = 800/bit.getWidth(); 
      double newHeight = ratio * bit.getHeight(); 
      double newWidth = ratio * bit.getWidth(); 
      Log.d("New Values:", String.valueOf(newHeight) + "/ " + String.valueOf(newWidth)); 
      scaleBitmap(bit, (int)newHeight, (int)newWidth); 

私はダブルと呼ばれる比率は、したがって、それはゼロに解決、両方のオペランドがint型のある整数の除算の原因である0

答えて

2

1080分の800として出てくる意味(約0.740は...ゼロに切り捨て)。

整数除算を避けるには、いずれか1つを2倍にキャスト/変換します。結果が表示されます。

+0

変数をdouble型にすると仮定しましたが、結果はdouble型になりますか? – arleitiss

+0

@arleitissはい、そうです。 –