为什么我收到此错误"由以下原因引起:java.lang.ArithmeticException:除以零"?

时间:2017-05-09 07:21:58

标签: java android divide-by-zero

基本上,我实现了一个Live Radio流媒体应用程序,在这个应用程序中,我使用vitamio库来传输直播电台。在我的应用程序中,我有两个活动:

(1)MainActivity:显示键盘输入频率并播放该频道。

(2)DialScreen:显示一个滚轮意味着当用户滚动该滚轮时,此时频率将改变并使用开始按钮播放该频道。

问题和错误:当我启动MainActivity并在键盘输入频率并使用开始按钮播放该频率无线电时,它正常工作但我正在更改{{1转到MainActivity并滚动DialScreen滚轮更改频率,当我按下DialScreen中的开始按钮并收到DialScreen错误时。

Logcat: Logcat error

RoundKnobButton.java文件:第29行

Caused by: java.lang.ArithmeticException: divide by zero

DialScreen.java文件:第152行

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");
            }

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

1 个答案:

答案 0 :(得分:2)

让我们来看看这一行:

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

并假设size==361

由于sizeint,我们有一个整数除法,360/size等于0。然后,您将其转换为float,生成0.0f,围绕它(givin 0.0f)并将其分配给int,结果也是0

你可能打算做的是

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

注意不同的括号......