在Java中表示和操纵概率和百分比的正确方法是什么?

时间:2011-10-21 19:14:03

标签: java

在Java中计算和操作概率,然后将其表示为百分比时,用于表示它们的最佳数据结构是什么?

本机doublefloat似乎不是特别理想的候选者,因为它们有奇怪的舍入问题,当舍入多次发生并且复杂时会引入错误。

BigInteger适用于计算排列和组合,BigDecimal似乎可能是非整数值的一个很好的候选者,但有没有更适合处理百分比的东西?< / p>

注意:在这种情况下,计算的概率在性质上与涉及卡片组的概率类似,但有数百张卡片。对于更多数学倾向,我特别使用Multivariate Hypergeometric_distributions

2 个答案:

答案 0 :(得分:5)

说到概率,我怀疑你会从使用分数中受益。

看看这个问题:

否则我认为BigDecimal是您的最佳选择。但请注意java.lang.ArithmeticException: Non-terminating decimal expansion;

答案 1 :(得分:0)

这就是我对双重做的事情,我认为使用双倍对于获得百分比的良好价值是最好的...

import java.text.NumberFormat;
//instance variable:
private static NumberFormat percent = NumberFormat.getPercentInstance();

//inside any method or event:
myAprValue = userInput / 100; 
percent = new DecimalFormat("0.0#%"); 

String st = percent.format(myAprValue);