C# 四舍五入

1、Math.Round()

Math.Round(45.367,2);   //Returns   45.37
Math.Round(45.365,2);   //Returns   45.36
Math.Round(1.5, 0);   // 2
Math.Round(2.5, 0);   // 2
Math.Round(-1.5, 0).ToString();   // -2
Math.Round(-2.5, 0).ToString();   // -2

Math.Round(45.367,2,MidpointRounding.ToEven);   //Returns   45.37
Math.Round(45.365,2,MidpointRounding.ToEven);   //Returns   45.36
Math.Round(1.5, 0, MidpointRounding.ToEven);   // 2
Math.Round(2.5, 0, MidpointRounding.ToEven);   // 2
Math.Round(-1.5, 0, MidpointRounding.ToEven).ToString();   // -2
Math.Round(-2.5, 0, MidpointRounding.ToEven).ToString();   // -2

如果不指定第三个参数,则等效为指定 MidpointRounding.ToEven,即向最近的偶数四舍五入
第三个参数还有一种情况:MidpointRounding.AwayFromZero,是指向远离 0 的地方四舍五入
也就是我们通常说的最简单的五入

2、ToString()

(0.05).ToString("0.0")    //0.1
(0.15).ToString("0.0")    //0.2
(0.25).ToString("0.0")    //0.3
(0.35).ToString("0.0")    //0.4
(0.45).ToString("0.0")    //0.5
(0.55).ToString("0.0")    //0.6
(0.65).ToString("0.0")    //0.7
(0.75).ToString("0.0")    //0.8
(0.85).ToString("0.0")    //0.9
(0.95).ToString("0.0")    //1.0

ToString("#0.0")和ToString("f1")和ToString("g1"),也是一样的结果
f1表示精度为1位,自动补0;g1表示精度为1位,不会补0,所以在C#中,四舍五入其实很简单,直接 ToString()就可以了

(0.65).ToString("f1")        //0.7
(0.65).ToString("f3")        //0.650
(0.65).ToString("g3")        //0.65

ToString("#0.0")和ToString("0.0")是一样的,但ToString("0.0")和ToString("0.#")不一样:前者保留多余的0,后者省略多余的0

你可能感兴趣的:(C# 四舍五入)