我是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
,但我不想这样解决...
由于
答案 0 :(得分:4)
int var_result;
已经宣布。您不能指望在其中存储浮动,而不会失去精度。
当您执行类型转换时,该变量暂时被视为另一种类型,用于评估表达式但不会改变实际的内容。
int仍然是int。您应该使用float var_result_float
来存储浮动。
答案 1 :(得分:3)
int var_result
是一个int
变量
如果您需要float
,请使用float var_result
我不想这样解决......
嗯......这是唯一的方式。
答案 2 :(得分:1)
如果您需要在变量中存储int
或float
,可以使用double
来存储所有可能的值。
恕我直言如果你可以避免它,请不要使用float
,因为它的精确度相当差。
答案 3 :(得分: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,所以这非常笨拙。