我试图划分两个整数并得到一个十进制数 当我除以10/29时,我一直得到0结果 我想得到0.34
我的代码是:
private int totalCount_Games;
private int totalCount_Hints_Statistics;
double avgHints;
avgHints=totalCount_Hints_Statistics/totalCount_Games;
答案 0 :(得分:1)
在Java中,当您除以两个整数时,结果是另一个整数。
在您的情况下,如您所述,10/29将导致0。如果要以浮动数字获得这些结果,请将上述两个整数更改为 float 或 double 。
在这种情况下,上述计算的结果将 0.34 。
PS:这是非常基本的。您应该在官方java站点上进行更多研究,以获取有关数据类型的文档。答案 1 :(得分:0)
上面的代码将导致0.0,因为int / int将始终是一个int,这是另一种类型转换为double,因此输出为0.0
使用以下代码,使用大小数进行舍入
double totalCount_Games_double = totalCount_Games;
double totalCount_Hints_Statistics_double = totalCount_Hints_Statistics;
double value = totalCount_Hints_Statistics/totalCount_Games_double;
BigDecimal bd = new BigDecimal(value);
bd = bd.setScale(2, RoundingMode.HALF_UP);
答案 2 :(得分:0)
int除法的结果是另一个int,舍入。 在表达式部分中将int转换为double(或float)会使除法发生在双精度而不是int上,请注意这与将int除法的结果转换为double不同。
int i = 5, b = 10;
double result = ((double)i)/((double)b);
结果为0.5