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_result是一个int变量。
如果您需要float使用float var_result

我不想用这种方式解决它...

嗯...这是唯一的方法。

于 2012-10-20T09:22:55.970 回答
1

如果您需要在变量中存储一个intfloat,您可以使用 adouble来存储所有可能的值。

float恕我直言,如果可以避免它,请不要使用它,因为它的精度相当差。

于 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 回答