Android Gone Wrong 值的划分

问题描述

当我将大数除以小数时,除法是正确的,但是当我写小数除以大数时,答案返回错误。在我的场景中,小数永远是第一位的。这是我的代码代码返回 7.4074074074074075E-6 但正确的结果是 0.0000074074。

    double itf = 0.0;
    double a = 4.0;
    double b = 540000;
    itf = a / b;
    Log.i(TAG,"savedata: outputvalue=" + itf);

解决方法

BigDecimal a = new BigDecimal("4");
BigDecimal b = new BigDecimal("540000");

// 0.0000074074
a.divide(b,MathContext.DECIMAL128);

您应该使用十进制类型。 double 不在支持范围内