1

私はJavaの初心者で、数学演算に従って変数を変換しようとしています。次のスキームを作成しましょう。

int var_result;
if(addition) {
  var_result = number1+number2; // number1, number2 => integers
}
else if(division){
  var_result = (float) number1 / number2;
  // and here is the problem - I don't know, how to convert "var_result" from integer to float
}

...just print var result ...

この場合、 var_result変数を変換する簡単な方法はありますか?この例で最も簡単な方法は、変換せずに使用することfloat var_result_floatですが、この方法で解決したくありません...

ありがとう

4

4 に答える 4

4

int var_result;すでに宣言されています。精度を落とさずにフロートを格納することは期待できません。

型キャストを実行すると、変数は式の評価のために一時的に別の型として扱われますが、実際の変数は変更されません。

intはintのままです。float var_result_floatフロートを保管するために一緒に行く必要があります。

于 2012-10-20T09:22:30.760 に答える
3

int var_resultint変数です。使用
が必要な場合floatfloat var_result

私はそれをこのように解決したくありません...

ええと...これが唯一の方法です。

于 2012-10-20T09:22:55.970 に答える
1

intまたはfloatを変数に格納する必要がある場合は、を使用しdoubleてすべての可能な値を格納できます。

IMHOfloat精度がかなり悪いので、回避できる可能性がある場合は使用しないでください。

于 2012-10-20T09:24:47.993 に答える
1

変数のタイプを変更することはできませんが、次の方法で必要なものを取得できます。

Object var_result; 
if(addition) { 
  var_result = new Integer(number1+number2); // number1, number2 => integers 
} 
else if(division){ 
  var_result = new Float( (float) number1 /  (float) number2); 
} 

もちろん、数値を使用するには、instanceofを使用して型をテストし、必要に応じてFloatまたはIntegerにキャストする必要があるため、これは非常に不器用です。

于 2012-10-20T09:28:34.623 に答える