Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当商小于1时,Java分区不工作_Java - Fatal编程技术网

当商小于1时,Java分区不工作

当商小于1时,Java分区不工作,java,Java,我今天在编码的时候遇到了这个问题 System.out.println(block.chance); // -> 10 float chanceFloat = block.chance / 100; System.out.println(chanceFloat); // -> 0.0 我不确定问题出在哪里。如果block.chance是一个整数,那么block.chance/100将作为整数除法执行(即结果被截断),然后转换为浮点 如果block.chance为正且小于100,则始

我今天在编码的时候遇到了这个问题

System.out.println(block.chance); // -> 10
float chanceFloat = block.chance / 100;
System.out.println(chanceFloat); // -> 0.0

我不确定问题出在哪里。

如果
block.chance
是一个整数,那么
block.chance/100
将作为整数除法执行(即结果被截断),然后转换为浮点


如果
block.chance
为正且小于100,则始终为0

最简单的修复方法是通过更改除法至少一侧的类型来确保除法需要浮点数。常见的习语是

float result = block.chance / 100.0;

你并不愚蠢,你只是不知道语言规则

block.chance
似乎是一个整数,两个整数的除法结果是一个整数,即使它被分配给一个
float
cariable(那么就太晚了)

您的解决方案是使用以下方法之一:

float chanceFloat = block.chance / 100.0;
float chanceFloat = block.chance / 100.0f;
float chanceFloat = block.chance / 100.f;
float chanceFloat = block.chance / 100f;
float chanceFloat = (float)block.chance / 100;

我猜
block.chance
是一个
int
。如果是这样,我建议你读一读让我猜猜:
block.chance
是整数吗?尝试
float chanceFloat=block.chance/100f