java平均速度计算返回“无穷大”
在我的安卓 google map应用程序中,我试图通过计算时间(以毫秒为单位)和距离(以米为单位)来计算平均速度,并对其执行下一次计算:
private double avgSpeed = 0;
public void calcAvgSpeed(double distance, long time) {
distance = distance / 1000; //1000 = km
time = time / 3600000; // 1000 = sec, 60000 = min, 3600000 = hrs
avgSpeed = (double) (distance / time);
}
为了确保它能工作,我用calcAvgSpeed(300, 30000);
运行了它,其中300是300米,30000是30000毫秒(或30秒)。我做的计算表明,采用这种方法后,平均速度应该是36。但当我打印结果时,它会说“无穷大”,就像我除以零一样
有人知道我的方法是不是错了,或者为什么我会得到这个奇怪的答案吗
# 1 楼答案
改变
到
因为long是一个整数,如果你把long除以3600000,你会得到0(因为它四舍五入到整数部分)
这里你可以得到一个0的除法:
这是无限的
# 2 楼答案
你需要除以零
执行整数除法,因为
time
属于long
类型要解决这个问题,请使用
# 3 楼答案
你可以从这个LINK的公式中使用:
或者你可以使用: