asp.Net小数点四捨五入の正しい書き方

732 ワード

一、Math.Roundデフォルト規則
四捨六入五取偶(四捨六入五留双とも呼ばれる)、すなわち:
切り捨てビットの数値が5未満の場合、そのビットを直接切り捨てる.切り捨てビットの数値が6以上である場合、そのビットを切り捨てながら1ビット前進する.切り捨てビットの値が5に等しい場合、前ビットの値が奇数である場合、そのビットを切り捨てながら前ビットに進み、前ビットの値が偶数である場合、そのビットを直接切り捨てます.
二、asp.Net小数点四捨五入の実現方法
 
double RealRound(double value, int decimals)
{
   if (value < 0)
   {
    return Math.Round(value + 5 / Math.Pow(10, decimals + 1), decimals, MidpointRounding.AwayFromZero);
   }
   else
   {
    return Math.Round(value, decimals, MidpointRounding.AwayFromZero);
   }
}

インスタンスの使用
RealRound(45.367,2);//Returns   
45.37RealRound(45.365,2);//Returns   45.37

参考資料:asp.Net小数点四捨五入の正しい書き方http://www.studyofnet.com/news/1172.html