私はAndroidで電卓アプリを作成しましたが、この種の乗算を行うときはいつでも:
23.3 x 3.3
私が得る答えは次のようなものです:
76.988999999999
このアプリとの競合を解決する方法を教えてください。答えは次のようになります
76.89
私はAndroidで電卓アプリを作成しましたが、この種の乗算を行うときはいつでも:
23.3 x 3.3
私が得る答えは次のようなものです:
76.988999999999
このアプリとの競合を解決する方法を教えてください。答えは次のようになります
76.89
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
)。ただし、電卓アプリにはおそらくより良い選択です。分割するときは、スケールと丸めモードを受け入れるバージョンを使用する必要があることを覚えておいてください。また、クラスの詳細を読んで、スケールの概念を理解してください。
あなたの質問は明確ではありません。私はあなたが正確な数字の答えを得たいと思います。
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);
}
}