C# 四舍五入保留两位小数方法总结
在开发中我们经常需要将数值数据进行四舍五入,保留相关小数。我总结了常用的三种转换方式及其对应的特点。
方式一:使用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# 四舍五入保留两位小数方法总结相关推荐
- php百分比四舍五入两位,php四舍五入保留两位小数有哪些实现方法
php四舍五入保留两位小数有哪些实现方法 发布时间:2020-08-06 10:12:55 来源:亿速云 阅读:96 作者:Leah 本篇文章给大家分享的是有关php四舍五入保留两位小数有哪些实现方法 ...
- 求以下double数组的平均值(四舍五入保留两位小数):
import java.math.BigDecimal;/*** 求以下double数组的平均值(四舍五入保留两位小数):* double[] arr = {0.1,0.2,2.1,3.2,5.56, ...
- java float四舍五入保留两位小数_java基础入门-float四舍五入保留两位小数注意的地方...
float四舍五入保留两位小数注意的地方 最近在codewars做了一道非常简单的题目,但是它却花了我20来分钟,虽然最后解决了,但是中间发觉对于java的基础实在不行,回去要好好补一下 不说这么多, ...
- js保留两位小数方法总结
js保留两位小数方法总结 最近在做结算系统,经常需要用到金额保留两位小数,刚开始我一直用的是Angular中的过滤器number |2,但是,这无法满足我的需求.问题是,当用户离开文本框时,我需要将用 ...
- 【C语言】将一个浮点数四舍五入保留两位小数
[C语言]将一个浮点数四舍五入保留两位小数 第一次做这个题目的时候,我用了一个比较傻的方法:利用强制类型转换可以得到该浮点数的整数部分,然后分别取出十分位.百分位.千分位上的数字,判断千分位上的数字是 ...
- python 保留两位小数方法
参考文章:python 保留两位小数方法 保留两位小数,并做四舍五入处理 方法一:使用字符串格式化 a = 12.345 print("%.2f" % a)# 12.35 方法二: ...
- js保留两位小数方法
一."四舍五入"算法 // 1.四舍五入的情况var num = 2.446245;// toFixed() 方法可把 Number 四舍五入为指定小数位数的数字.num = nu ...
- c++ 四舍五入保留两位小数_Excel中保留小数点位数
今天老板让我把带有小数点的表格进行整理,老板说把数据整理成保留两位,默认为四舍五入,老板还要整理成一种不四舍五入的数据.好的老板马上整理,这次老板的要求正好是我会的,真棒!我们一起来学一下吧. 首先我 ...
- JavaScript计算两个文本框内数据的乘积(四舍五入保留两位小数)
function check(id) { var re = /^[0-9]+.?[0-9]*$/; //判断数字是否合法的正则表达式 var danjia=document.getElementByI ...
- 【PAT甲级 ArrayList存放class】1011 World Cup Betting (20 分) Java版 3/3通过 四舍五入保留两位小数
题目 一共给9个数,3*3,找到每行最大,按照题目要求套算式,计算就行 坑 & 心得 没啥坑,一次通过,用到的知识点是:自定义排序.四舍五入保留两位小数 DecimalFormat df = ...
最新文章
- 蓝桥杯C++ AB组辅导课
- MongoDB干货篇之查询数据
- nodejs中的exports和module.exports
- 【linux】查看字体
- IOS开发基础之团购案例17-xib和UITableView两种方式实现
- npm 安装 chromedriver 失败的解决办法
- .NET Core Community 首个千星项目诞生:CAP
- yarn安装依赖包报错 error An unexpected error occurred: “https://registry.npm.taobao.orgnpm/element-ui: get
- jQuery 表单应用:全选/取消全选,表单验证,网页选项卡切换
- jquery操作select时怎么产生事件
- 在vue中实现锚点定位功能
- 学习3ds max插件开发过程中的一些小结
- Matlab-信号处理工具箱
- 手心输入法导致 Navicat for MySQL闪退的解决办法
- php短信验证码接口免费,[php短信验证码接口]PHP 短信验证码
- 微信小程序运营之如何获取流量
- 信号转换 | 如何将正弦波转换成方波?
- 014基于SSH航空订票系统air
- Java+MySQL基于SSM的在线论坛交流系统
- 西红柿炒鸡蛋教程(从入门到精通)