我基本上有四个数字(比如100、200、300、400),我需要计算的概率是100 /(100 + 200 + 300 + 400),200 /(100 + 200 + 300 + 400),依此类推。
当我使用十进制数据类型存储这些概率时,由于舍入问题,它们不会加起来等于1。有没有最好的方法可以解决这个问题而不会使概率太不准确?基本上,我要进行这个计算很多次,所以我不想把所有的除法都改成Math.Round之类的东西。:|
当我使用十进制数据类型存储这些概率时,由于舍入问题,它们不会加起来等于1。有没有最好的方法可以解决这个问题而不会使概率太不准确?基本上,我要进行这个计算很多次,所以我不想把所有的除法都改成Math.Round之类的东西。:|
decimial
吗?应该是精确的decimal
。你可能在使用double
,或者使用字面量,例如1.0
(应该是1.0M
表示decimal
)。 - Marc Gravellprobabilities[i, j] = ((decimal)Count[i, j]) / ((decimal)(NUMBER_OF_TIMESTEPS - numberOfTimestepsToSkip));
双重数组probabilities是decimal类型。 - Matt