- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第
C#之如何实现真正的四舍五入
目录C#实现真正的四舍五入C#简单四舍五入函数总结
C#实现真正的四舍五入
C#中的Math.Round()直接使用的话,实际上是:四舍六入五取偶,并不是真正意义上的四舍五入。
例如我取2位小数17.365
会变成17.36很苦恼
实现真正四舍五入需要用到MidpointRounding.AwayFromZero枚举项,同时传入的数值类型必须是decimal类型:
用法示例:
decimaldd=Math.Round((decimal)66.545,2,MidpointRounding.AwayFromZero);
还有2种比较残暴的写个函数正负数都可以四舍五入或者负数五舍六入
doubleRound(doublevalue,intdecimals)
if(value0)
returnMath.Round(value+5/Math.Pow(10,decimals+1),decimals,MidpointRounding.AwayFromZero);
else
returnMath.Round(value,decimals,MidpointRounding.AwayFromZero);
}
doubleRound(doubled,inti)
if(d=0)
d+=5*Math.Pow(10,-(i+1));
else
d+=-5*Math.Pow(10,-(i+1));
stringstr=d.ToString();
string[]strs=str.Split(.);
intidot=str.IndexOf(.);
stringprestr=strs[0];
stringpoststr=strs[1];
if(poststr.Lengthi)
poststr=str.Substring(idot+1,i);
stringstrd=prestr+.+poststr;
d=Double.Parse(strd);
returnd;
}
参数:d表示要四舍五入的数;i表示要保留的小数点后为数。
其中第二种方法是正负数都四舍五入,第一种方法是正数四舍五入,负数是五舍六入。
备注:个人认为第一种方法适合处理货币计算,而第二种方法适合数据统计的显示。
C#简单四舍五入函数
publicintgetNum(doublet){?
??????doublet1;
??????intt2;
??????string[]s=t.ToString().Split(.);
??????stringi=s[1].Substring(0,1);//取得第一位小数
??????intj=Convert.ToInt32(i);
??????if(j=5)
????????t1=Math.Ceiling(t);//向上转换
??????else
????????t1=Math.Floor(t);//向下转换
??????t2=(int)t1;
??????returnt2;
????}
Convert.ToInt32(1.2)为四舍五入的强制转换但是0.5时候会为0(int)1.2是向下强制转换既Math.Floor(),1.2转换后为1;Math.Ceiling(1.2)则是向上转换,得到2。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
您可能关注的文档
- react中事件处理与柯里化的实现.docx
- 语文读书演讲稿5分钟(19篇).docx
- 培训计划方案总结(31篇).docx
- 2025年个人教学工作总结(通用29篇).docx
- 爱岗敬业演讲稿怎么写(7篇).docx
- React Fiber构建completeWork源码解析.docx
- 家居房屋装修合同(29篇).docx
- C语言二分查找图文详解.docx
- 运输业劳动合同范本(3篇).docx
- PHP中如何在数组中按值的字母顺序进行排序.docx
- 广东省深圳市宝安区南海中学2023-2024学年八年级上学期期中物理试题(含答案).pdf
- 广东省开平市忠源纪念中学2023-2024学年八年级上学期期中考试物理试题(含答案).docx
- 广东省深圳市宝安区南海中学2023-2024学年八年级上学期期中物理试题(含答案).docx
- 广东省开平市忠源纪念中学2023-2024学年八年级上学期期中考试物理试题(含答案).pdf
- 2025年新版《白牙》题目及答案.pdf
- 2025年新版sql语言题目及答案.doc
- 2025年新版what how题目及答案.pdf
- 2025年新版sat题目及答案.doc
- 2025年新版一建真题及答案法规.pdf
- 2025年新版some的题目及答案.doc
文档评论(0)