-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);

编辑

学习此十进制格式的示例。

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 回答