【转载】C# double和decimal数据类型以截断的方式保留指定的小数位数
项目中要用到以截断的方式取小数点后两位,故写了以下方法:
/// <summary>
/// 将小数值按指定的小数位数截断
/// </summary>
/// <param name="d">要截断的小数</param>
/// <param name="s">小数位数,s大于等于0,小于等于28</param>
/// <returns></returns>
public static decimal ToFixed(decimal d, int s)
{
decimal sp = Convert.ToDecimal(Math.Pow(10, s));
if (d < 0)
return Math.Truncate(d) + Math.Ceiling((d - Math.Truncate(d)) * sp) / sp;
else
return Math.Truncate(d) + Math.Floor((d - Math.Truncate(d)) * sp) / sp;
}
/// <summary>
/// 将双精度浮点值按指定的小数位数截断
/// </summary>
/// <param name="d">要截断的双精度浮点数</param>
/// <param name="s">小数位数,s大于等于0,小于等于15</param>
/// <returns></returns>
public static double ToFixed(double d, int s)
{
double sp = Math.Pow(10, s);
if (d < 0)
return Math.Truncate(d) + Math.Ceiling((d - Math.Truncate(d)) * sp) / sp;
else
return Math.Truncate(d) + Math.Floor((d - Math.Truncate(d)) * sp) / sp;
}
顺带提一下:
double和decimal的ToString("#.##")方法使用的是四舍五入;
静态类System.Math下的Round(decimal d, int decimals)方法,舍入的方式使用的是“四舍六入五成双”;
静态类System.Math下的Round(decimal d, int decimals, MidpointRounding mode)的第三个参数是枚举参数,指示如何处理中间值(5);
静态类System.Math的方法:http://msdn.microsoft.com/zh-cn/library/system.math_methods(v=vs.80)
转载于:https://www.cnblogs.com/Kevin1002/p/4723462.html
【转载】C# double和decimal数据类型以截断的方式保留指定的小数位数相关推荐
- [转载]使用awk进行数字计算,保留指定位小数
对于在Shell中进行数字的计算,其实方法有很多,但是常用的方法都有其弱点: 1.bc bc应该是最常用的Linux中计算器了,简单方便,支持浮点. [wangdong@centos715-node1 ...
- mysql中的double类型_MySQL中float、double、decimal三个浮点类型的区别与总结!
作者:极客小俊 一个专注于web技术的80后 我不用拼过聪明人,我只需要拼过那些懒人 我就一定会超越大部分人! CSDN@极客小俊,原创文章, B站技术分享 个人博客: cnblogs.com 前端h ...
- 对double值进行四舍五入,保留两位小数的几种方法
mport java.text.DecimalFormat; DecimalFormat df = new DecimalFormat("######0.00"); double ...
- java保留两位小数_java使double保留两位小数的多方法 java保留两位小数
这篇文章主要介绍了java使double类型保留两位小数的方法,大家参考使用吧 mport java.text.DecimalFormat; DecimalFormat df = new Decima ...
- java中想要保留2位小数_java使double保留两位小数的多方法 java保留两位小数
mport java.text.DecimalFormat; DecimalFormat df = new DecimalFormat("######0.00"); do ...
- java保留二位小数_java使double保留两位小数的多方法 java保留两位小数
复制代码代码如下: mport java.text.DecimalFormat; DecimalFormat df = new DecimalFormat("######0.00& ...
- java 两位小数 四舍五入_java里的四舍五入(保留两位小数,返回double类型)
1.最简单的操作,验证之后是准确的四舍五入 double payPercent=123.345; System.out.println((double)Math.round(payPercent*10 ...
- java使double保留两位小数
代码如下:mport java.text.DecimalFormat; DecimalFormat df = new DecimalFormat("######0.00"); do ...
- java double 保留小数_java使double类型保留两位小数的方法
java使double类型保留两位小数的方法 本文是百分网小编整理的主要介绍关于java使double类型保留两位小数的方法,有需要的朋友们一起看看吧!想了解更多相关信息请持续关注我们应届毕业生考试网 ...
最新文章
- 拼多多再起波澜!某程序员匿名发布拼多多楼下救护车照片,却被揪出开除!...
- 洛谷P1315 观光公交
- JavaWeb 项目安全问题及其解决方案
- css权重计算方法浅谈
- next_permutation 与 prev_permutation(全排列算法)
- PHP mysql_real_escape_string() 函数
- 「 每日一练,快乐水题 」258. 各位相加
- 使用.NET中的XML注释(一) -- XML注释标签讲解
- SAP Spartacus RouteEvent,如何从localhost跳转到其他路由路径的
- c语言随机数循环延迟,C语言生成随机数的函数、延时函数
- 数据结构铁轨问题_每天5分钟用C#学习数据结构(20)图 Part 1
- PowerShell 远程执行任务
- 【linux】 linux 查看系统信息
- 集合点(掌握)-并发
- numpy教程:函数库和ufunc函数
- julia语言 python解释器_深入Python解释器源码,我终于搞明白了字符串驻留的原理...
- 【工具】中国菜刀 官方原版下载 官网下载链接
- 【语篇标记练习题】Dismissing what was said
- linux ftp解压命令 cannot fid or open,CPAN命令操作细节
- 如何利用MATLAB调用手机摄像头(手把手教程)
热门文章
- Scala集合常用方法:reduceLeft/reduceRight
- Scala集合List的常用方法:take/flatMap/filter/zip/union/intersect/diff及WordCount集合实现
- Python Django 一对多之插入多条数据示例
- Python Django 文件上传代码示例
- Python3需要安装的MySQL库是mysqlclient
- MySQL优化group by和distinct
- Java Radom类的使用方法实例
- Spring boot 将配置文件属性注入到一个bean中
- matlab利用t-SNE实现高维数据可视化(tsne函数用法实例)
- 不小心关闭了explorer.exe进程,桌面变白解决办法