Posted on 09月 22nd, 2008 作者: 蛋蛋
Java中的基本数值变量只有int、double等少数几种,而通常为了节省内存开销,每种类型的储存长度是有限的,也就是说在进行小数(通常是double型)计算的时候,往往都要损失精度。若是处理少量的数据还好,这点误差可以忽略不计。但如果需要处理的数据很多呢?这种有JAVA自身机制引起的精度误差累加后将变的无法忽视了。例如最少见的单位做报表进行统计的时候,当我把所有的统计结果相加,居然结果经常不会是100%,有可能101%或99%!
很显然是不合理的。这就是由于精度损失累加而造成的。所以我就想有没有可能利用分数来表示每种概率呢?因为这样我可以用分数表示每种可能的概率,最后将他们累加,这样得到的一定是1!
也可能因为这种情况,或是有关于钱或计算什么之类的,我在面试的过程中,有个公司也确实要我机试分数的运算。 Read the rest of this entry »