无法打印长除法和乘法的值

Mri*_*lla 3 java math integer long-integer

我很难搞清楚为什么像这样的简单分区总是返回0.

System.out.println(4091365376L / 4091495462L * 100L);
Run Code Online (Sandbox Code Playgroud)

我用Ls后缀所有数字,因此它们被视为Longs.我一直都是零.

我正在尝试将4091365376L的百分比计算为4091495462L.我的值是Longs但我只是在寻找一个简单的Integer值.

Tom*_*icz 7

您是整数舍入的受害者(实际上是:截断).试试这个:

System.out.println(4091365376L * 100L / 4091495462L);
Run Code Online (Sandbox Code Playgroud)

打印99.或double暗示:

System.out.println(100.0 * 4091365376L / 4091495462L);
Run Code Online (Sandbox Code Playgroud)

给予99.99682057572328.潜水时你的问题4091495462L比稍大一点4091365376L,结果被截断为0(尝试3 / 4,如果你不相信).和0时代100是......