相关疑难解决方法(0)

如何解决Java Rounding Double问题

似乎减法正在触发某种问题,结果值是错误的.

double tempCommission = targetPremium.doubleValue()*rate.doubleValue()/100d;
Run Code Online (Sandbox Code Playgroud)

78.75 = 787.5*10.0/100d

double netToCompany = targetPremium.doubleValue() - tempCommission;
Run Code Online (Sandbox Code Playgroud)

708.75 = 787.5 - 78.75

double dCommission = request.getPremium().doubleValue() - netToCompany;
Run Code Online (Sandbox Code Playgroud)

877.8499999999999 = 1586.6 - 708.75

由此产生的预期值为877.85.

应该怎样做才能确保正确计算?

java math rounding

75
推荐指数
5
解决办法
16万
查看次数

为什么9999999999999999在JavaScript中转换为10000000000000000?

任何人都可以向我解释为什么9999999999999999被转换为10000000000000000?

alert(9999999999999999); //10000000000000000
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/Y2Vb2/

javascript

31
推荐指数
4
解决办法
5699
查看次数

为什么(长)9223372036854665200d给我9223372036854665216?

我知道有精确错误的怪异东西,但我无法理解,

为什么(long)9223372036854665200d要给我9223372036854665216

java double casting long-integer

9
推荐指数
4
解决办法
718
查看次数

标签 统计

java ×2

casting ×1

double ×1

javascript ×1

long-integer ×1

math ×1

rounding ×1