我必须做一些计算,但有些事情不能正常运作,任何人都可以说出什么?
例如,如果我有一个假,一个是真的,它应该是50%,但它给了我0%,这里有什么问题?
for (Verhuur verhuur : verhuur)
{
if(verhuur.getSchade() == true)
{
welSchade = welSchade + 1;
}
if(verhuur.getSchade() == false)
{
geenSchade = geenSchade + 1;
}
}
percentageSchade = (welSchade / (welSchade + geenSchade)) * 100;
System.out.println("Het percentage boten met schade is " + percentageSchade + " %." );
答案 0 :(得分:2)
您可能希望将其转换为double:
((double)welSchade / (welSchade + geenSchade)) * 100
答案 1 :(得分:2)
你的问题是你将一个整数除以一个更大的整数,它返回0,因为整数没有分数。
您可以更改操作顺序(在除法前乘以100,以确保除法的结果至少为1)或使用double
或float
变量,这将允许结果介于0和1之间。
答案 2 :(得分:1)
如果welSchade
和geenSchade
是整数,那么它们的除法结果将是整数。因此,0.5将被评估为0,这就是为什么你得到0。
答案 3 :(得分:1)
问题出在第一行:
for (Verhuur verhuur : verhuur)
第二个verhuur应该是要迭代的变量名。所以可能是这样的:
for (Verhuur verhuur : verhuurItems)
编辑:
与其他答案一样,您还必须从整数中生成浮点数或将表达式计算为浮点数,如下所示:
((float)welSchade/((float)geenSchade+welSchade))*100