我正在编译此代码并在分区上获得0
println((MarkAnalysis.failAmount/Student.studentsId.length).toDouble + " " + MarkAnalysis.failAmount + " " + Student.studentsId.length)
我打印出来以确保除法不返回零,
MarkAnalysis.failAmount = 14
MarkAnalysis.studentsId.length = 53
我不明白为什么我得到0.0的结果。
答案 0 :(得分:2)
hazzard猜测failAmount和studentId都是整数(int或long),因此结果是整数(即int / int是int)。由于53> 14,这将是0.仅在计算0之后,它将被转换为double。
你想进行双重划分,因此在进行除法之前需要转换为double,例如:
MarkAnalysis.failAmount.toDouble/Student.studentsId.length.toDouble