-5

私はAndroidで電卓アプリを作成しましたが、この種の乗算を行うときはいつでも:

23.3 x 3.3

私が得る答えは次のようなものです:

76.988999999999

このアプリとの競合を解決する方法を教えてください。答えは次のようになります

76.89
4

2 に答える 2

6

IEEE-754の世界へようこそ。BigDecimalこの特定のケースでは、次の方法ではなく、より良い結果を得ることができますdouble

import java.math.*;

public class BigCheck {
    public static final void main(String[] args) {
        BigDecimal a = new BigDecimal("23.3");
        BigDecimal b = new BigDecimal("3.3");
        System.out.println(a.multiply(b));
    }
}

...しかしBigDecimal、独自の問題があります(たとえば、try 10 / 3)。ただし、電卓アプリにはおそらくより良い選択です。分割するときは、スケールと丸めモードを受け入れるバージョンを使用する必要があることを覚えておいてください。また、クラスの詳細を読んで、スケールの概念を理解してください。

于 2013-03-24T11:24:27.547 に答える
2

あなたの質問は明確ではありません。私はあなたが正確な数字の答えを得たいと思います。

DecimalFormat df = new DecimalFormat(".##");
String result = df.format(76.988999999999);

編集

この10進形式を学習する例。

import java.text.DecimalFormat;

class Demo {
    public static void main(String args[])  
    {
        double b = 756.988999999999;
        DecimalFormat df = new DecimalFormat(".##");
        String result = df.format(b);
        System.out.printf(result);  
    }
}
于 2013-03-24T11:24:21.140 に答える