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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容