Java - 减去双打给出答案* 1000

时间:2018-02-04 02:13:30

标签: java double

我试图找到2个双打与多个小数点的区别:

double highest = 0.01518804243008679;
double lowest = 0.01464486209421528;
System.out.println("Difference: " + (highest - lowest));

我得到的答案是正确的,但只是乘以10 000:

Difference: 5.431803358715102E-4

当所需的输出为:

Difference: 0.0005431803358

1 个答案:

答案 0 :(得分:0)

有很多方法可以做到这一点。这是我的解决方案,您可以找到这些方法。

package example;

import java.math.BigDecimal;
import java.text.DecimalFormat;

public class Example {
    public static void main(String[] args) {
        double highest = 0.01518804243008679;
        double lowest = 0.01464486209421528;

        double answer = highest - lowest;
        DecimalFormat df = new DecimalFormat("#");
        df.setMaximumFractionDigits(13);
        System.out.println(df.format(answer));

        System.out.printf("Difference: %.13f\n", (highest - lowest));

        System.out.println(new BigDecimal(answer).toPlainString());

        System.out.println(String.format("%.13f", answer));
    }

}

输出结果为:

.0005431803359
Difference: 0.0005431803359
0.00054318033587151016983174400820644223131239414215087890625
0.0005431803359