2012-01-04 7 views
2

ウェブサイト上でこれらのルールを見つけることができませんでした(確かに私が間違ったことをしているので)。java数学の結果のタイプ

intをintで除算してdoubleに格納すると、必ず最初に丸められた整数が格納されます。私がそれを動作させるために見つけることができた唯一の方法は、分割を行う前に両方の値をdoubleにキャストすることです。より良い方法が必要です。

また、戻り値の型はどこにありますか?

答えて

3

、操作の2種類がある:

  • 整数操作
  • 浮動小数点演算(浮動小数点、ダブル)2つのオペランドが整数型である場合

、整数演算が実行されます。
2オペランドのうち、ANYONEが浮動小数点の場合、浮動小数点演算が実行されます。 THUS

Int/Int --------> int 
Double/Int -----> Double 
Double/Double --> Double 
4

実際、いい方法はありません。 intをintで除算するとintになります。つまり、5/2を2で割ったとします.2と3の間に整数がないので、2になります。浮動小数点の結果が必要な場合は、そのうちの1つを浮動小数点型にする必要があります。代わりに

int f=5, t=2; 
double result; 

result = f/t; 

のそれを伝えるために型キャストを使用して

result = f/(double) t ; 

を作る「私はくそ浮動小数点除算たい!」。プログラミング言語の

1

あなただけの簡単な方法は、最初からダブルスを使用することです結果、二重

int a,b; 
double d = (double) a/b; 

を作るために一つの引数をキャストする必要があります。

double a, b; 
double d = a/b; 

double丸め誤差なしにあらゆる可能なint値を表すことができます。

可能な重複:How to divide two large integers in java?

0

確かに良い方法があります。そのうちの1つをdoubleにキャストすると、もう1つは自動的に変換されます。他の回答が状態よう

式のタイプは、それが格納される前に、引数によって決定される、intで割っintのみ次いでdoubleとして格納される、intを生じます。これはJavaに固有のものではないことに注意してください。整数分割を行うすべての言語で発生します。