我遇到了一个问题,我正在开发一个应该能够进行一些数学计算的应用程序。这些计算必须是准确的(或者显然不是错误的)
但是这个简单的代码
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
您需要使用精确的精确度是BigDecimal对象:
BigDecimal a = new BigDecimal("3.048"); BigDecimal b = new BigDecimal(1000); BigDecimal c = a.divide(b); System.out.println(c); //0.003048