为什么我会收到此错误 "Caused by: java.lang.ArithmeticException: divide by zero"?

Why I am getting this error "Caused by: java.lang.ArithmeticException: divide by zero"?

如何停止小于 <= 0 的值及其抛出异常。

Logcat : Logcat error

RoundKnobButton.java 文件:

int size = GetJsonData.frequency.size();
        int a = Math.round((float)(360/size));
            int b = 0;
            try {
                Log.i("RoundKnob",".....Try");
                b = Math.round((float)(scaleDegrees/a));
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                Log.i("RoundKnob", ".....catch");
            }

DialScreen.java 文件:

rv = new RoundKnobButton(this, R.drawable.circle, R.drawable.circle1,
            R.drawable.circle1, m_Inst.Scale(350), m_Inst.Scale(350));

所以,如果有人知道问题解决方案或给我解决此错误的想法,请告诉我。

让我们看看这一行:

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

并假设 size==361.

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

您可能想做的是

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

注意不同的括号...