C#四舍五入MidpointRounding.AwayFromZero解析

 更新时间:2023年05月04日 11:10:20   作者:王源骏  
这篇文章主要介绍了C#四舍五入MidpointRounding.AwayFromZero,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

C#四舍五入MidpointRounding.AwayFromZero

四舍五入 在计算中 经常使用到,但是如果使用 Math.Round,只是五舍六入

在Math.Round内传入MidpointRounding.AwayFromZero枚举,就可以实现四舍五入的效果了,

 Debug.Log($"四舍五入{66.6}。。。{(int)Math.Round(66.6, MidpointRounding.AwayFromZero)}");
 Debug.Log($"四舍五入{66.5}。。。{(int)Math.Round(66.5, MidpointRounding.AwayFromZero)}");
 Debug.Log($"四舍五入{66.4}。。。{(int)Math.Round(66.4, MidpointRounding.AwayFromZero)}");
 Debug.Log($"四舍五入{66.6}。。。{(int)Math.Round(66.6)}");
 Debug.Log($"四舍五入{66.5}。。。{(int)Math.Round(66.5)}");
 Debug.Log($"四舍五入{66.4}。。。{(int)Math.Round(66.4)}");

C#文档:

https://docs.microsoft.com/zh-cn/dotnet/api/system.midpointrounding?view=net-6.0#system-midpointrounding-awayfromzero

C#四舍五入以及保留小数位的方法

C#中的Math.Round()并不是使用的"四舍五入"法。

其实C#的Round函数都是采用Banker’s rounding(银行家算法),即:四舍六入五取偶

Math.Round(0.4) //result:0
Math.Round(0.6) //result:1
Math.Round(0.5) //result:0
Math.Round(1.5) //result:2
Math.Round(2.5) //result:2

使用MidpointRounding.AwayFromZero的效果:

Math.Round(0.4, MidpointRounding.AwayFromZero); // result:0
Math.Round(0.6, MidpointRounding.AwayFromZero); // result:1
Math.Round(0.5, MidpointRounding.AwayFromZero); // result:1
Math.Round(1.5, MidpointRounding.AwayFromZero); // result:2
Math.Round(2.5, MidpointRounding.AwayFromZero); // result:3

保留后俩位小数点要用到另一个重载方法

Math.Round((decimal)22.325, 2,MidpointRounding.AwayFromZero)//result : 22.33

C#实现保留两位小数的方法

Math.Round(0.333, 2);//按照四舍五入的国际标准
double dbdata = 0.335; string str1 = String.Format("{0:F}", dbdata);//默认为保留两位
decimal.Round(decimal.Parse("0.3453"), 2)
Convert.ToDecimal("0.3333").ToString("0.00");

C#保留小数点后几位

String.Format("{0:N1}", a) 保留小数点后一位
String.Format("{0:N2}", a) 保留小数点后两位
String.Format("{0:N3}", a) 保留小数点后三位

C#保留小数位N位四舍五入

double s=0.55555; ??
result=s.ToString("#0.00");//点后面几个0就保留几位?

C#保留小数位N位四舍五入

double dbdata = 0.55555; ??
string str1 = dbdata.ToString("f2");//fN 保留N位,四舍五入

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持程序员之家。

相关文章

  • C#下实现创建和删除目录的实例代码

    C#下实现创建和删除目录的实例代码

    这篇文章主要介绍了C#下实现创建和删除目录的方法,功能非常实用,需要的朋友可以参考下
    2014-08-08
  • C# List介绍及具体用法

    C# List介绍及具体用法

    这篇文章主要介绍了C# List介绍及具体用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • 剖析设计模式编程中C#对于组合模式的运用

    剖析设计模式编程中C#对于组合模式的运用

    这篇文章主要介绍了设计模式编程中C#对于组合模式的运用,理论上来说组合模式包含抽象构件、树叶构件和树枝构件三个角色,需要的朋友可以参考下
    2016-02-02
  • C#图像识别 微信跳一跳机器人

    C#图像识别 微信跳一跳机器人

    这篇文章主要为大家详细介绍了C#图像识别,微信跳一跳机器人,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • c#操作Redis的5种基本类型汇总

    c#操作Redis的5种基本类型汇总

    这篇文章主要给大家介绍了关于c#操作Redis的5种基本类型,文中通过示例代码介绍的非常详细,对大家的学习或者使用C#具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-07-07
  • C# WinForm应用程序降低系统内存占用方法总结

    C# WinForm应用程序降低系统内存占用方法总结

    这篇文章主要介绍了C# WinForm应用程序降低系统内存占用方法总结,本文总结了9个方法,同时给出了一个定期清理执行垃圾回收代码,需要的朋友可以参考下
    2014-10-10
  • Unity实现简单虚拟摇杆

    Unity实现简单虚拟摇杆

    这篇文章主要为大家详细介绍了Unity实现简单虚拟摇杆,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • c# AcceptEx与完成端口(IOCP)结合的示例

    c# AcceptEx与完成端口(IOCP)结合的示例

    这篇文章主要介绍了c# AcceptEx与完成端口(IOCP)结合的示例,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03
  • C#利用反射技术实现去掉按钮选中时的边框效果

    C#利用反射技术实现去掉按钮选中时的边框效果

    这篇文章主要介绍了C#利用反射技术实现去掉按钮选中时的边框效果,涉及C#针对窗口的参数设置技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • C# 使用Word模板导出数据的实现代码

    C# 使用Word模板导出数据的实现代码

    最近接到个需求,使用word模板导出数据,怎么实现这个需求呢,今天小编通过实例代码给大家介绍C# 使用Word模板导出数据的方法,感兴趣的朋友一起看看吧
    2021-06-06

最新评论

?


http://www.vxiaotou.com