Calculation problem in Java

前端 未结 2 1493
逝去的感伤
逝去的感伤 2020-12-19 07:21

I\'m having slight difficulty in performing a calculation in Java. Here is what I\'m trying to do -

((0.053800 * (500000/1000)) + 4) * 0.85

In m

相关标签:
2条回答
  • 2020-12-19 07:56

    The following is a much better approximation, which results in the same value in this case:

    import java.math.BigDecimal;
    import java.math.MathContext;
    
    public class Test {
        public static void main(String[] args) {
            //double d = ((0.053800 * (500000/1000)) + 4) * 0.85;
            BigDecimal d = ((new BigDecimal(0.053800).multiply(new BigDecimal(500000).divide(new BigDecimal(1000)))).add(new BigDecimal(4))).multiply(new BigDecimal(0.85));
            System.out.println(d.round(MathContext.DECIMAL32));
        }
    }
    
    0 讨论(0)
  • 2020-12-19 08:17

    See my answer here for an explanation of what's going on.

    0 讨论(0)
提交回复
热议问题