为什么我会犯这个错误;原因:java.lang.arithmetricException:被零除;?

为什么我会犯这个错误;原因:java.lang.arithmetricException:被零除;?,java,android,divide-by-zero,Java,Android,Divide By Zero,如何阻止低于的值让我们看看这行: int a = Math.round((float)(360/size)); 并假设size==361 因为size是一个int我们有一个整数除法,360/size等于0。然后将其转换为浮点,得到0.0f,将其四舍五入(givin0.0f),并将其分配给int,其结果也是0 你可能想做的是 int a = Math.round(((float)360/size)); 请注意不同的括号…第152行的DialScreen.java是什么?我非常怀疑您是否真的需要

如何阻止低于的值让我们看看这行:

int a = Math.round((float)(360/size));
并假设
size==361

因为
size
是一个
int
我们有一个整数除法,
360/size
等于
0
。然后将其转换为
浮点
,得到
0.0f
,将其四舍五入(givin
0.0f
),并将其分配给
int
,其结果也是
0

你可能想做的是

int a = Math.round(((float)360/size));

请注意不同的括号…

第152行的DialScreen.java是什么?我非常怀疑您是否真的需要提供700多行代码来演示错误。错误(在问题中应以纯文本形式发布)表明问题出现在RoundKnob.java的第29行,该行被0除。(这是真实代码的第29行,而不是您提供的不包含任何导入的代码。)请阅读以便。。。很代码…当代码只有一行时,为什么不把它粘贴到这里呢?更新你的输入并提供一个简单的。除此之外:异常告诉您除以零。你不明白的是什么?你没有链接什么的。你把所有相关的代码都放在这里;通常包括堆栈跟踪。是的,你是新来的。因此,请您花一些时间在学习如何/在这里问什么。当我改变这个int a=Math.round((float)(360/size));to int a=数学圆(((浮点)360/大小));此时也会产生错误。如果你知道第二种方法,请告诉我。首先要做的是在错误发生时找到
size
的实际值。你可以从那里继续。。。。
int a = Math.round((float)(360/size));
int a = Math.round(((float)360/size));