码迷,mamicode.com
首页 > 其他好文 > 详细

Math.Round函數

时间:2014-09-10 15:33:50      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:style   io   strong   sp   on   c   line   算法   sql   

Math.Round這個函數的解釋是將值按指定的小數位數舍入,並不就是四捨五入這種舍入有時稱為就近舍入或四舍六入五成雙

 

 

其實在 VB, VBScript, C#, J#, T-SQL 中 Round 函數都是採用 Banker‘s rounding(銀行家舍入)演算法,即四舍六入五取偶。事實上這也是 IEEE 規定的舍入標準。因此所有符合 IEEE 標準的語言都應該是採用這一演算法的。

 

如果大家想要四舍五入,記得要加上參數MidpointRounding.AwayFromZero

 

decimal a_Round = 0;

            a_Round = Math.Round(Convert.ToDecimal("5.265"), 2);  //結果為5.26  (銀行家舍入算法 MidpointRounding.ToEven參數)

 

            a_Round = Math.Round(Convert.ToDecimal("5.266"), 2); //結果為5.27   (銀行家舍入算法 MidpointRounding.ToEven參數)

            a_Round = Math.Round(Convert.ToDecimal("5.275"), 2); //結果為5.28   (銀行家舍入算法 MidpointRounding.ToEven參數)

 

            a_Round = Math.Round(Convert.ToDecimal("5.265"), 2, MidpointRounding.AwayFromZero);  //結果為5.27  (四舍五入算法)

            a_Round = Math.Round(Convert.ToDecimal("5.265"), 2, MidpointRounding.ToEven);        //結果為5.26  (銀行家舍入算法)

            a_Round = Math.Round(Convert.ToDecimal("5.275"), 2, MidpointRounding.AwayFromZero);  //結果為5.28  (四舍五入算法)

            a_Round = Math.Round(Convert.ToDecimal("5.275"), 2, MidpointRounding.ToEven);        //結果為5.28  (銀行家舍入算法)

 

 

MS SQL並不是

MS SQL的Round函數是四舍五入的

Math.Round函數

标签:style   io   strong   sp   on   c   line   算法   sql   

原文地址:http://www.cnblogs.com/guyuehuanhuan/p/3964444.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!