Warm tip: This article is reproduced from serverfault.com, please click

math-Java中的整数除法

(math - Division of integers in Java)

发布于 2011-08-28 11:34:14

这是一个基本问题,但我找不到答案。我研究了浮点算法和其他一些主题,但似乎没有任何东西可以解决这个问题。我敢肯定我只是用错了术语。

基本上,我想取两个数量-已完成和总计-将它们除以一个百分比(已完成的数量)。数量为longs。设置如下:

long completed = 25000;
long total = 50000;

System.out.println(completed/total);  // Prints 0

我试过将结果重新分配给它打印的两倍0.0我要去哪里错了?

顺便说一下,下一步是将该结果乘以100,我认为一旦克服了这一小障碍,这应该很容易。

顺便说一句,这里没有作业,只是普通的老呆子(也许今天编码太多)。

Questioner
Ben
Viewed
12
33 2018-11-10 17:13:29

转换输出为时已晚;该计算已经以整数算术进行。你需要将输入转换double

System.out.println((double)completed/(double)total);

请注意,你实际上并不需要转换两个输入。只要其中一个是double,另一个将被隐式转换。但是出于对称性,我宁愿两者都做。