我有这样的价值:
long millis = 11400000; int consta = 86400000; double res = millis/consta;
问题是:为什么res等于0.0(而不是约0.131944)?它存储在双,所以应该没有四舍五入的权利?
解决方法
当您使用二进制运算符时,两个参数应该是相同的类型,结果也将在它们的类型中.当你想分割(int)/(long)时,它变成(long)/(long),结果是(long).你应该做(double)/(long)或(int)/(double)来获得双重结果.由于double是int和long,int和long将在(double)/(long)和(int)/(double)中变为double