我正在嘗試創建一個具有小數點精度的集合,舍入到小數點後兩位。然而,這個集合有很多數字,我必須使用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