我正在尝试创建一个具有小数点精度的集合,舍入到小数点后两位。然而,这个集合有很多数字,我必须使用BigInteger作为解决方案。BigInteger的划分和舍入
的细节: - 得到具有BigIntegers 集合 - 得到BigIntegers 的另一个集合 - 好大的整数 的第三集合 - 我要创建具有上述3个集的平均值的集合,值四舍五入到小数点后两位。 即如果collection1有{2,3,4},collection2有{4,5,5},collection3有{5,3,2}我应该创建一个第4个集合{3.67,3.67,,3.67}
为此,我正在使用此代码:
BigInteger divisor = new BigInteger(3.0d);
var averages = collection1.Zip(collection2, BigInteger.Add)
.Zip(collection3,
(xy, z) => BigInteger.Divide(BigInteger.Add(xy,z), divisor));
但是小数没有出现。我不确定biginteger是否只能保存整数值而不是十进制值。
你能为此建议一个解决方案吗?
注意:它必须是基于LINQ的,因为集合相当庞大,并且有一些很大的值(因此也是biginteger)。
提示:**整数**。 [ExactlyWhatItSaysOnTheTin(http://tvtropes.org/pmwiki/pmwiki.php/Main/ExactlyWhatItSaysOnTheTin) – SLaks 2012-02-20 17:43:56
即使BigInteger的停留整数 – alexsuslin 2012-02-20 17:46:37