得到十进制数的结果

时间:2017-09-19 16:48:48

标签: android decimal

我试图划分两个整数并得到一个十进制数 当我除以10/29时,我一直得到0结果 我想得到0.34

我的代码是:

private int totalCount_Games;
private int totalCount_Hints_Statistics;
double avgHints;
avgHints=totalCount_Hints_Statistics/totalCount_Games;

3 个答案:

答案 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