我的 java 代码有什么问题?

What is wrong in my java code?

我必须做一些计算,但有些东西不太好用,谁能告诉我是什么?

例如,如果我有一假一真,它应该是 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 + " %." );

如果welSchadegeenSchade是整数,那么,它们相除的结果就是整数。因此,0.5 将被评估为 0,这就是您得到 0 的原因。

您可能希望将其转换为双精度:

((double)welSchade / (welSchade + geenSchade)) * 100

您的问题是您将一个整数除以一个更大的整数,returns 0,因为整数没有分数。

您可以更改运算顺序(在除法之前乘以 100,以确保除法的结果至少为 1)或使用 doublefloat 变量,这将允许结果介于 0 和 1 之间。

问题出在第一行:

for (Verhuur verhuur : verhuur)

第二个 verhuur 应该是要迭代的变量名。所以可能是这样的:

for (Verhuur verhuur : verhuurItems)

编辑:

就像其他答案所暗示的那样,您还必须从整数中生成浮点数或将表达式计算为浮点数,如下所示:

((float)welSchade/((float)geenSchade+welSchade))*100