用于浮点除法的Java显式类型转换

时间:2016-11-29 18:26:19

标签: java floating-point

我不确定我是否在选项4(除法)中对浮点除法使用显式类型转换。我需要一些帮助来理解什么是浮点除法。

我必须使用整数来存储2个操作数,一个double来存储结果。必须在选项4中对浮点除法使用显式类型转换。还可以使用switch语句来处理菜单选项。每次计算后

x = x.to_frame('count').reset_index()

2 个答案:

答案 0 :(得分:2)

不,这不是一个明确的类型转换。你会想要使用这样的东西:

result = ((double) num1) / ((double) num2);

实际上,由于/运算符的规则不断扩大,您只需要其中一个显式转换,但两者都没有坏处。实际上,因为强制转换运算符()的优先级高于除法运算符/,所以可以将其写为:

result = (double) num1 / num2;

结合了分子的显式演员和分母的隐式演员。

答案 1 :(得分:0)

显式类型转换是指告诉编译器表达式结果的类型。通常,您不需要输入强制转换,因为表达式的结果已经知道。

例如:

int a = 1, b = 2;
int c = a + b; // The "type" of a + b is int. No explicit cast.

但我们可以明确地将该表达式转换为其他类型:

int a = Integer.MAX_VALUE, b = 2;
double c = (double) a + (double) b; // Explicitly cast to avoid integer overflow.

第二个版本告诉编译器将ab转换为双精度,然后将它们加在一起。此表达式的结果也将是double类型。

就像@Ted Hopp所说,你不需要像这样显式地转换这两个操作数。在这种情况下,投射ab会产生相同的效果。