http://www.soaspx.com/dotnet/csharp/csharp_20100415_3809.html
四舍五入是软件开发中经常遇到的问题,我也在不止一个项目中用到这方面的运算;关于c#的四舍五入,如果你去网上搜会有好多结果,但大部分的内容都是说微软的Math.Round() 不准确,属于“四舍六入五成双”,然后会有很多人自己去写方法来实现,有的很简单,有的很复杂,有的还不对;

其实要实现这个功能,真的不用这么麻烦;大家既然知道c#有Math.Round(),难道就没发现它有多大8个重载方法吗,其中有一个类型是MidpointRounding的参数,只要我们很好的利用它,就完全可以实现很精确的四舍五入,根本不用写那么复杂的方法。

MidpointRounding:指定数学舍入方法应如何处理两个数字间的中间值。

下表演示与 MidpointRounding 的值结合使用的某些正数和负数的舍入结果。在舍入数字时所使用的精度是零,这意味着小数点之后的数字会影响舍入运算。例如,对于数字 -2.5,小数点之后的数字是 5。由于该数字是中间值,因此您可以使用 MidpointRounding 值来确定舍入结果。如果指定了 AwayFromZero,则将返回 -3,因为它是精度为零且与零最接近的数字。如果指定了 ToEven,则将返回 -2,因为它是精度为零的最接近的偶数。

原始数字
取绝对值较大的值
取偶数

3.5
4
4

2.8
3
3

2.5
3
2

2.1
2
2

-2.1
-2
-2

-2.5
-3
-2

-2.8
-3
-3

-3.5
-4
-4

不用我再解释了吧,假如像把3.455四舍五入到3.46,实际上只需要用下面的代码就可以

==============================

Math.Round( 3.455, 2, MidpointRounding.AwayFromZero)

==============================

c# 简单又好用的四舍五入方法的更多相关文章

  1. php使用curl简单抓取远程url的方法

    这篇文章主要介绍了php使用curl简单抓取远程url的方法,涉及php操作curl的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了php使用curl抓取远程url的方法.分 ...

  2. 简单CSS定位瀑布流实现方法

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. Git简单生成生成公钥和私钥方法

    Git简单生成生成公钥和私钥方法 Git配置 Git安装完之后,需做最后一步配置.打开git bash,分别执行以下两句命令 git config --global user.name “用户名” g ...

  4. 【转】java取整和java四舍五入方法

    java取整和java四舍五入方法 import java.math.BigDecimal; import java.text.DecimalFormat; public class TestGetI ...

  5. SOCKET简单爬虫实现代码和使用方法

    抓取一个网页内容非常容易,常见的方式有curl.file_get_contents.socket以及文件操作函数file.fopen等. 下面使用SOCKET下的fsockopen()函数访问Web服 ...

  6. Python简单计算数组元素平均值的方法示例

    Python简单计算数组元素平均值的方法示例 本文实例讲述了Python简单计算数组元素平均值的方法.分享给大家供大家参考,具体如下: Python 环境:Python 2.7.12 x64 IDE ...

  7. 数据结构和算法(Golang实现)(4)简单入门Golang-结构体和方法

    结构体和方法 一.值,指针和引用 我们现在有一段程序: package main import "fmt" func main() { // a,b 是一个值 a := 5 b : ...

  8. java取整和java四舍五入方法 转自董俊杰

    import java.math.BigDecimal; import java.text.DecimalFormat; public class TestGetInt{ public static ...

  9. [置顶] 简单解析linux下进程通信方法

    linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的.而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间 ...

随机推荐

  1. django wsgi nginx 配置

    """ WSGI config for HelloWorld project. It exposes the WSGI callable as a module-leve ...

  2. Kettle提高输入输出数据总结

    1 mysql在数据连接是可以通过设置一下三个三处的方式 useServerPrepStmts=false       useCursorFetch=true      useCompression= ...

  3. UIResponder简介

    1.简介 在使用设备的时候我们大多时候是但手指触摸控件了进行的,比如点击密码按钮解锁,上下浏览网页等动作.你肯定也摇动过iphone抢红包和***等等,我们的系统可以处理这些事件则都需要去使用UIRe ...

  4. 测试php单例模式和静态访问,实例化访问的效率

    // 测试的类class Memory { private static $a= null; public function __construct() { return self::$a; } pu ...

  5. DRF的@action装饰器

    # 转自:http://www.cnblogs.com/zhzhlong/p/9325180.html 视图集中附加action的声明 from rest_framework.decorators i ...

  6. 微信openid和UnionID (多公众号如何判断是否是同一人)

    以下内容源于网络,因为非博客园信息,有想收藏,只能直接复制粘贴了,还希望原稿人员理解. 微信公众平台更新,为开发者提供UnionID机制 经开发者反馈,由于同一公司下多个公众号之间需要用户帐号互通,微 ...

  7. 《java并发编程实战》读书笔记2--对象的共享,可见性,安全发布,线程封闭,不变性

    这章的主要内容是:如何共享和发布对象,从而使它们能够安全地由多个线程同时访问. 内存的可见性 确保当一个线程修改了对象状态后,其他线程能够看到发生的状态变化. 上面的程序中NoVisibility可能 ...

  8. python import模块的搜索路径

    当在py代码中import所依赖的模块时, python是从哪里找到这些模块呢,即模块的搜索路径是啥? 默认情况下,Python解释器会搜索当前目录.所有已安装的内置模块和第三方模块,搜索路径存放在s ...

  9. 解决nginx+php二级页面显示空白的问题

    迁移官网商城的发现主页的二级界面显示空白页,此https商城网站 后修改nginx配置,显示正常 添加 location ~ [^/]\.php(/|$) { #fastcgi_pass remote ...

  10. crontab定时任务管理

    定时任务 添加与编辑任务crontab -e0 */1 * * * command0 */2 * * * command 查询任务是否加了:crontab -l   #查看当前用户crontab -l ...