在开发中我们经常需要将数值数据进行四舍五入,保留相关小数。我总结了常用的三种转换方式及其对应的特点。

方式一:使用Math.Round(double,int)
//常规方法:使用Math.Round(),
double num1 = Math.Round(2.455,2);//得到的值是2.46
double num2 = Math.Round(2.445, 2);//得到的值是2.44,实际生活中我们认为应该得到2.45
double num3 = Math.Round(2.454,2);//得到的值是2.45
double num4 = Math.Round(2.456, 2);//得到的值是2.46

方式一,是我们在实际开发中经常使用的进行四舍五入的方法,但是再使用的时候一定要注意,C#中的Round()不是我们中国人理解的四舍五入,是老外的四舍五入,是符合IEEE标准的四舍五入,具体是四舍六入,如果遇5则前一位如果是偶数则舍掉,如果是奇数则进一位

方式二:使用Math.Round(double,int,MidpointRounding)
//方法二:使用Math.Round()的重载函数,四舍五入,保留两位数据
double num5 = Math.Round(2.455,2,MidpointRounding.AwayFromZero);//得到的值是2.46
double num6 = Math.Round(2.445,2,MidpointRounding.AwayFromZero);//得到的值是2.45
double num7 = Math.Round(2.454,2,MidpointRounding.AwayFromZero);//得到的值是2.45
double num8 = Math.Round(2.456,2,MidpointRounding.AwayFromZero);//得到的值是2.46

这种方式才是我们中国人理解的四舍五入。

方式三:使用.tostring(“0.00”)进行格式化
//方式三:使用double.tostring("0.00")进行格式化
double num9 = 2.455;
double num10 = 2.445;
double num11 = 2.456;
double num12 = 2.454;string strNum9 = num9.ToString("0.00");  //得到的值是"2.46"
string strNum10= num10.ToString("0.00"); //得到的值是"2.45"
string strNum11= num11.ToString("0.00"); //得到的值是"2.46"
string strNum12= num12.ToString("0.00"); //得到的值是"2.45"

备注:如需保留1位小数,则.ToString(“0.0”)即可,3位小数以此类推

方式四:增加0.*5

如果我们需要对一个数四舍五入,保留2位小数,又需要2.445这样的数值保留后为2.45而不是2.44,我们还可以给这个数增加0.005;

//方式三:增加0.005
double num13 = 2.445;
double num14 = 2.455;
double num13To = Math.Round(num13 + 0.005,2);//得到的结果是2.45
double num14To = Math.Round(num14 + 0.005, 2);//得到的结果是2.46

备注:
1.如果是保留3为小数则添加0.0005即可,其它依次类推。
2.此法也适用于Convert.ToInt32(),进行int数据转换。

总结: 综合比较上述四种方式,可以看出方式二是最适用最科学的方式。

C# 四舍五入保留两位小数方法总结相关推荐

  1. php百分比四舍五入两位,php四舍五入保留两位小数有哪些实现方法

    php四舍五入保留两位小数有哪些实现方法 发布时间:2020-08-06 10:12:55 来源:亿速云 阅读:96 作者:Leah 本篇文章给大家分享的是有关php四舍五入保留两位小数有哪些实现方法 ...

  2. 求以下double数组的平均值(四舍五入保留两位小数):

    import java.math.BigDecimal;/*** 求以下double数组的平均值(四舍五入保留两位小数):* double[] arr = {0.1,0.2,2.1,3.2,5.56, ...

  3. java float四舍五入保留两位小数_java基础入门-float四舍五入保留两位小数注意的地方...

    float四舍五入保留两位小数注意的地方 最近在codewars做了一道非常简单的题目,但是它却花了我20来分钟,虽然最后解决了,但是中间发觉对于java的基础实在不行,回去要好好补一下 不说这么多, ...

  4. js保留两位小数方法总结

    js保留两位小数方法总结 最近在做结算系统,经常需要用到金额保留两位小数,刚开始我一直用的是Angular中的过滤器number |2,但是,这无法满足我的需求.问题是,当用户离开文本框时,我需要将用 ...

  5. 【C语言】将一个浮点数四舍五入保留两位小数

    [C语言]将一个浮点数四舍五入保留两位小数 第一次做这个题目的时候,我用了一个比较傻的方法:利用强制类型转换可以得到该浮点数的整数部分,然后分别取出十分位.百分位.千分位上的数字,判断千分位上的数字是 ...

  6. python 保留两位小数方法

    参考文章:python 保留两位小数方法 保留两位小数,并做四舍五入处理 方法一:使用字符串格式化 a = 12.345 print("%.2f" % a)# 12.35 方法二: ...

  7. js保留两位小数方法

    一."四舍五入"算法 // 1.四舍五入的情况var num = 2.446245;// toFixed() 方法可把 Number 四舍五入为指定小数位数的数字.num = nu ...

  8. c++ 四舍五入保留两位小数_Excel中保留小数点位数

    今天老板让我把带有小数点的表格进行整理,老板说把数据整理成保留两位,默认为四舍五入,老板还要整理成一种不四舍五入的数据.好的老板马上整理,这次老板的要求正好是我会的,真棒!我们一起来学一下吧. 首先我 ...

  9. JavaScript计算两个文本框内数据的乘积(四舍五入保留两位小数)

    function check(id) { var re = /^[0-9]+.?[0-9]*$/; //判断数字是否合法的正则表达式 var danjia=document.getElementByI ...

  10. 【PAT甲级 ArrayList存放class】1011 World Cup Betting (20 分) Java版 3/3通过 四舍五入保留两位小数

    题目 一共给9个数,3*3,找到每行最大,按照题目要求套算式,计算就行 坑 & 心得 没啥坑,一次通过,用到的知识点是:自定义排序.四舍五入保留两位小数 DecimalFormat df = ...

最新文章

  1. 蓝桥杯C++ AB组辅导课
  2. MongoDB干货篇之查询数据
  3. nodejs中的exports和module.exports
  4. 【linux】查看字体
  5. IOS开发基础之团购案例17-xib和UITableView两种方式实现
  6. npm 安装 chromedriver 失败的解决办法
  7. .NET Core Community 首个千星项目诞生:CAP
  8. yarn安装依赖包报错 error An unexpected error occurred: “https://registry.npm.taobao.orgnpm/element-ui: get
  9. jQuery 表单应用:全选/取消全选,表单验证,网页选项卡切换
  10. jquery操作select时怎么产生事件
  11. 在vue中实现锚点定位功能
  12. 学习3ds max插件开发过程中的一些小结
  13. Matlab-信号处理工具箱
  14. 手心输入法导致 Navicat for MySQL闪退的解决办法
  15. php短信验证码接口免费,[php短信验证码接口]PHP 短信验证码
  16. 微信小程序运营之如何获取流量
  17. 信号转换 | 如何将正弦波转换成方波?
  18. 014基于SSH航空订票系统air
  19. Java+MySQL基于SSM的在线论坛交流系统
  20. 西红柿炒鸡蛋教程(从入门到精通)

热门文章

  1. JSP Servlet Mysql学生签到考勤请假系统
  2. 浅谈 MySQL 写数据一致性保障机制
  3. pytorch nn.AdaptiveAvgPool2d(1)
  4. python计算直角三角形斜边上的中线_直角三角形斜边上的中线等于斜边的一半教学设计...
  5. 超好用的mac虚拟机软件:VM虚拟机 mac中文版
  6. 苹果鼠标右键怎么按_IOS13.4更新后的鼠标用途在哪?
  7. PubYun动态域名
  8. 腾讯云,体验万象优图鉴黄服务
  9. 第二章 VB语言基础
  10. TF-IDF入门与实例