读书人

关于C#四舍五入的方法求大神帮忙!该

发布时间: 2012-06-05 13:54:06 作者: rapoo

关于C#四舍五入的方法,求大神帮忙!!急!
比如说 我输入一个数 10.45446
我想要它小数部分四舍五入,仅仅只是小数部分, 经过四舍五入后输出后为10.46,小数部分仅保存2位

[解决办法]

C# code
/// <summary>/// 小数位数计算/// </summary>/// <param name="je">数值</param>/// <param name="xsw">小数位</param>/// <param name="jefs">0.四舍五入1.进1法 2.舍1法 3.下取整四舍六入五成双</param>/// <remarks></remarks>public static double f_round(double je, int xsw, int jefs){    switch (jefs) {        case 0:            //四舍五入            return Math.Round(je, xsw, MidpointRounding.AwayFromZero);        case 1:            //进1(上取整)            string str = "1";            for (int i = 1; i <= xsw; i++) {                str += "0";            }            int temp1 = Convert.ToInt32(str);            return Math.Floor(je * temp1) / temp1;        case 2:            //舍1(下取整)            break;        case 3:            //四舍六入五成双            break;    }}
[解决办法]
那就试试这个:
decimal d = 10.45446m;
Math.Ceiling(d * 100) / 100

OR

Math.Round(d + 0.005)
[解决办法]
http://msdn.microsoft.com/zh-cn/library/system.math.round(VS.80).aspx

double d = Math.Round(10.45446, 2, MidpointRounding.AwayFromZero);

读书人网 >C#

热点推荐