Java 双精度的,不精确的
我不知道如何克服进位的双精度问题,我尝试了大十进制,也许我做得不对 我不需要非常精确的结果,但我需要结果1.764。Java 双精度的,不精确的,java,double,precision,rounding,Java,Double,Precision,Rounding,我不知道如何克服进位的双精度问题,我尝试了大十进制,也许我做得不对 我不需要非常精确的结果,但我需要结果1.764。 提前感谢。这是因为您正在执行整数除法1,4和10被视为整数,因此1/4和1/10将是整数除法 将w1和w2更改为: java将以这种方式执行浮点除法,这是因为执行整数除法1、4和10被视为整数,因此1/4和1/10将是整数除法 将w1和w2更改为: 这样,java将执行浮点除法1/4和10/4是整数除法。它们的结果是一个int,然后被加宽为一个double。您需要的是双除法: d
提前感谢。这是因为您正在执行整数除法1,4和10被视为整数,因此1/4和1/10将是整数除法 将w1和w2更改为:
java将以这种方式执行浮点除法,这是因为执行整数除法1、4和10被视为整数,因此1/4和1/10将是整数除法 将w1和w2更改为: 这样,java将执行浮点除法1/4和10/4是整数除法。它们的结果是一个int,然后被加宽为一个double。您需要的是双除法:
double w1 = 1/4.0;
double w2 = 10/4.0;
或
1/4和10/4是整数除法。它们的结果是一个int,然后被加宽为一个double。您需要的是双除法:
double w1 = 1/4.0;
double w2 = 10/4.0;
或
设置刻度,然后使用以bigdecimal形式向下舍入
设置刻度,然后使用以bigdecimal形式向下舍入
我会读这个:我会读这个:
double w1 = 1.0 / 4
double w1 = 1 / 4.0
BigDecimal bigdecimal=new BigDecimal(x);
bigdecimal.setScale(2, BigDecimal.ROUND_HALF_DOWN);