Java 中的整数除法

2022-09-01 20:15:25

这感觉像是一个愚蠢的问题,但我在Java文档中找不到答案。如果我声明两个整数,然后将它们分开,究竟发生了什么?它们是转换为先除法,然后转换回 an ,还是除法“完成”为整数?floats/doublesinteger

此外,纯粹从实验来看,整数除法似乎将答案四舍五入为零(即 和 )。我这样认为是对的吗?3/2 = 1-3/2 = -1


答案 1

它们被划分为整数算术。因此,将整数除以整数,您可以得到适合多少次。还将为您提供除法的其余部分。所以abbaa % b(a / b ) * b + a % b = a


答案 2

Java 执行自动转换类型:

“它会自动将整数转换为双精度。即使不涉及整数,它也会自动将短路和字节转换为整数,当您想要执行短算术或字节算术时,需要不断进行烦人的转换。它将自动将基元转换为包装器,反之亦然,用于装箱和自动装箱。

Java从来不会在你没有指定的情况下强制转换任何东西。

但仍然.integer / integer = integer

此外,它始终会截断结果。因此,如果结果为 0.999999 作为浮点数,则整数除法仍将返回 0。