小编典典

Android-精确的数学计算

java

我遇到了一个问题,我正在开发一个应该能够进行一些数学计算的应用程序。这些计算必须是准确的(或者显然不是错误的)

但是这个简单的代码

double a = 3.048d;
double b = 1000d;

double c = a / b;

给我一个错误的结果c不是预期的0.003048而是0.0030480000000000004这显然是错误的。

double d = 3.048 / 1000;

第二个代码片段给出了正确的结果。

我知道在使用计算机进行计算时,并不是所有的浮点运算都是精确的,但是我不知道如何解决这个问题。

提前致谢!
路德维希

开发以下产品:
-Android 2.2
测试设备:
-HTC Desire


阅读 340

收藏
2020-11-30

共1个答案

小编典典

您需要使用精确的精确度是BigDecimal对象:

BigDecimal a = new BigDecimal("3.048");
BigDecimal b = new BigDecimal(1000);

BigDecimal c = a.divide(b);

System.out.println(c); //0.003048
2020-11-30