我在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);
学习此十进制格式的示例。
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);
}
}