Java为了钱而赔偿0.05

Vaa*_*ndu 3 java formatting rounding

我有7.125(双),需要使它7.15.什么是最简单的方法?

发现回合,但我得到7.13,请帮忙.

谢谢

Luk*_*der 13

最简单的方法是乘以20.0,舍入为整数并20.0再次除以.可以这样想:1.0 / 20.0 = 0.05......这就是为什么这会起作用的原因.

注意,"舍入"与"地板"(或铸造int)不同.您应该使用java.lang.Math.round()for doublefloattypes,或者java.math.BigDecimal.round(MathContext)使用BigDecimal类型

你最好还是可以使用BigDecimal

  • @Casey:这取决于很多事实,当涉及金钱时,没有"普遍"这样的事情,相信我.只需看看各种证券交易所及其各自的可交易证券.许多证券都有相关的四舍五入.有些证券甚至有奇怪的四舍五入,例如`0.1429 [某种货币]`,这意味着你必须将值上/下舍入到1/7.当涉及会计和税收时,任何国家的大多数司法管辖区都通过法律解决计算规则,因此在这里做出假设是没有意义的......如果需要舍入到"0.05",可能有一个原因 (2认同)