Java 整数除法精度丢失问题及解决方法
public class Test3 { public static void main(String[] args) { int s = 456789; int v = 40; double t = s / 10 / v; System.out.println('所用时间是:' + t); } }
为什么小数还是精确不了?
因为在计算过程中,除数和被除数都是整型 (int),所以结果也会是整型,然后再将整型转换成 double 类型。由于整型除法是向下取整,所以结果也会是向下取整的整数。
如果想要得到精确的小数,需要将除数或被除数中至少一个转换成浮点型 (double)。例如:
double t = (double) s / (10 * v);
原文地址: https://www.cveoy.top/t/topic/oZNN 著作权归作者所有。请勿转载和采集!