java – 在long / int划分中意外的结果

前端之家收集整理的这篇文章主要介绍了java – 在long / int划分中意外的结果前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这样的价值:
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
原文链接:https://www.f2er.com/java/124334.html

猜你在找的Java相关文章