.net decimal保留指定的小数位数(不四舍五入)_实用技巧

前言

项目中遇到分摊金额的情况,最后一条的金额=总金额-已经分摊金额的和。

这样可能导致最后一条分摊的时候是负数,所以自己写了一个保留指定位数小数的方法。

扩展方法的使用,使得调用起来很优雅。

示例代码

public static class DecimalExtension
  {
    /// <summary>
    /// decimal保留指定位数小数
    /// </summary>
    /// <param name="num">原始数量</param>
    /// <param name="scale">保留小数位数</param>
    /// <returns>截取指定小数位数后的数量字符串</returns>
    public static string ToString(this decimal num, int scale)
    {
      string numToString = num.ToString();

      int index = numToString.IndexOf(".");
      int length = numToString.Length;

      if (index != -1)
      {
        return string.Format("{0}.{1}",
          numToString.Substring(0, index),
          numToString.Substring(index + 1, Math.Min(length - index - 1, scale)));
      }
      else
      {
        return num.ToString();
      }
    }
  }

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索decimal
, 保留两位小数
decimal小数位数
bigdecimal小数位数、判断decimal小数位数、decimal小数位数、bigdecimal 四舍五入、bigdecimal不四舍五入,以便于您获取更多的相关知识。

时间: 2024-07-30 10:25:26

.net decimal保留指定的小数位数(不四舍五入)_实用技巧的相关文章

C# double和decimal数据类型以截断的方式保留指定的小数位数_C#教程

项目中要用到以截断的方式取小数点后两位,故写了以下方法: 复制代码 代码如下: /// <summary> /// 将小数值按指定的小数位数截断 /// </summary> /// <param name="d">要截断的小数</param> /// <param name="s">小数位数,s大于等于0,小于等于28</param> /// <returns></retur

asp.net正则表达式删除指定的HTML标签的代码_实用技巧

如果全盘删除里面的 HTML 标签,可能会造成阅读上的困难(比如 a, img 这些标签), 最好是删除一部分,保留一部分. 正则表达式里,判断 包含某些字符串 是非常容易理解的,但是如何判断 不包含某些字符串 (是字符串,不是字符,是某些,不是某个) 确实是个费解的事. 复制代码 代码如下: <(?!((/?\s?li)|(/?\s?ul)|(/?\s?a)|(/?\s?img)|(/?\s?br)|(/?\s?span)|(/?\s?b)))[^>]+> 这个正则是判断HTML标签不

VC++浮点数四舍五入保留两位小数VC++浮点数四舍五入保留两位小数

问题描述 VC++浮点数四舍五入保留两位小数VC++浮点数四舍五入保留两位小数 VC++浮点数四舍五入保留两位小数VC++浮点数四舍五入保留两位小数 解决方案 http://zhidao.baidu.com/link?url=tECI6Q8RqTZLAQfx7m5GKgdj9GTDy5XwIAu7pB_Ch74oF6EAif4TzLgjyFL-6llZBGs5pr9teO3MYQn5pV-0_a 解决方案二: Double?a?=?12.345678;????????????Console.Wr

sql decimal 控制查询输出小数位数

decimal(18,0) 18是定点精度,0是小数位数. decimal(a,b) a指定指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度38. b指定小数点右边可以存储的十进制数字的最大个数.小数位数必须是从 0 到 a之间的值.默认小数位数是 0. 实例  代码如下 复制代码 select cast(12.347343 asdecimal(18,2))  输出 12.35   decimal[ (p[ ,s] )] 和 numeric[ (p[ ,s] )] 固定精度和小数位数

JS 控制小数位数的实现代码_javascript技巧

昨天在用JS对前台浮点数进行合算时发现: 0.05+1.08=1.1300000000000001 上网查一查的确存在这种Bug,除了位数上控制之外也没什么也好的方法(希望高手能提出 其它思路). 于是自己编写一个控制小数位数的JS方法,解决开发燃眉之急 复制代码 代码如下: //小数位数控制,可以四舍五入 function Fractional(n) { //小数保留位数 var bit = 2; //加上小数点后要扩充1位 bit++; //数字转为字符串 n = n.toString();

javascript中的toFixed固定小数位数 简单实例分享_javascript技巧

[code]<script> var a=4.2343; alert(a.toFixed(3)); </script> <script>var a=4.2343;alert(a.toFixed(3));</script>执行结果: toFixed方法将一个数字转换成一个拥有固定小数位数的字符串.

asp实现生成由数字,大写字母,小写字母指定位数的随机数_应用技巧

<% '****************************** '函数:gen_key(digits) '参数:digits----要生成随机数的位数 '作者:阿里西西 '日期:2007/7/13 '描述:生成由数字,大写字母,小写字母指定位数的随机数:返回值:要生成的指定倍数的随机数 '示例:<%=gen_key(8)%> '****************************** Function gen_key(digits) '定义并初始化数组     dim char

asp.net验证一个字符串是否符合指定的正则表达式_实用技巧

/// <summary> /// 快速验证一个字符串是否符合指定的正则表达式. /// </summary> /// <param name="_express">正则表达式的内容.</param> /// <param name="_value">需验证的字符串.</param> /// <returns>是否合法的bool值.</returns> public st

ASP.NET 保留文件夹详解_实用技巧

1. Bin文件夹 Bin文件夹包含应用程序所需的,用于控件.组件或者需要引用的任何其他代码的可部署程序集.该目录中存在的任何.dll文 件将自动地链接到应用程序.如果在该文件夹中留有不用的或过期的文件,则可能出现"二义性引用(ambiguous reference)"异常的风险.换句话说,如果两个不同的程序集定义相同的类(相同的命名空间和名称),则ASP.NET运行库不能决定应该使用哪一 个程序集,从而抛出一个异常.在开发时,当我们重新命名一个项目或一个程序集的名称时,这是常见的错误