如何计算值与其总和的比率?

时间:2015-12-10 07:19:20

标签: java bigdecimal

我有3个BigDecimal值,我想找到3个值来表示它与总和的比率,这些比率应该加起来为1.但是,我遇到了以下错误:

scopes = "https://www.googleapis.com/auth/userinfo.email  https://www.googleapis.com/auth/plus.me"

正如您所看到的,3个比率 的总和不等于1 。我可以将比例从4改为5,这将解决问题。 然而我使用上面相同的代码来计算其他不同的数字。因此,我试图找到一种正确的方法, 适用于任何数字的X比率

1 个答案:

答案 0 :(得分:4)

只要您使用舍入,就会有效地同意结果不是绝对正确的。因此,如果目标是使比率之和等于1,那么只需执行

BigDecimal aRatio = a.divide(sum, 4, BigDecimal.ROUND_HALF_UP); 
BigDecimal bRatio = b.divide(sum, 4, BigDecimal.ROUND_HALF_UP); 
BigDecimal cRatio = BigDecimal.ONE.subtract(aRatio.add(bRatio));