【发布时间】:2017-01-24 18:59:59
【问题描述】:
我得到一个除以零的错误,这是没有意义的,因为我的两个变量都有数据。
String str = "54";
int i = 0, b = 0;
while(i < str.length()){
b = b + Integer.parseInt(Character.toString(str.charAt(i)));
i++;
}
int ratings = (b / str.length());
这是错误所指的行,b 的值为 9(它是一个整数),str 的长度是 2(它也是一个整数)。
当我尝试访问除法时,它给了我这个错误,但如果我访问这两个变量,我会毫无问题地得到它们的值。
我还尝试创建一个名为 strLength 的单独变量并在那里检索长度,但错误仍然存在。
【问题讨论】:
-
你确定 str 包含它应该包含的值吗?在除法之前添加这一行 -
System.out.println(""+str.length());以确保。 -
电脑不会说谎!你能把代码贴在这行之前吗?
-
实际上有两种可能性:
str.length()出于某种原因确实为零,或者错误来自其他代码。如果你只给我们看一行代码,我们真的很难说到底发生了什么。 -
奇怪...似乎在除法之前突然将 str.length 变为 0,将尝试找到解决方案
-
我猜反对票主要是因为如果没有 str 的值,您的问题就无法重现。我们只能猜测值可能是什么......