.net decimal保留指定的小数位数(不四舍五入)

 更新时间:2016年12月07日 10:26:57   作者:pengtan  
大家都知道decimal保留指定位数小数的时候,.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();
      }
    }
  }

总结

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

相关文章

  • 如何取消.net后台线程的执行

    如何取消.net后台线程的执行

    在使用多线程模型进行编程时,经常遇到的问题之一是,当我们关闭前台的UI线程时,后台的辅助线程仍然处于活动状态,从而导致整个应用程序无法正常退出
    2012-11-11
  • Asp .net 调用带参数的存储过程

    Asp .net 调用带参数的存储过程

    本文主要介绍了Asp .net 调用带参数的存储过程的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • gridview行索引获取方法及实现代码(非js版)

    gridview行索引获取方法及实现代码(非js版)

    前一篇是用Javascript获取GridView的行索引,此篇Insus.NET使用非Javascript获取GridView的行索引,感兴趣的朋友可以了解下
    2013-01-01
  • MAUI中实现构建跨平台原生控件

    MAUI中实现构建跨平台原生控件

    这篇文章介绍了MAUI中实现构建跨平台原生控件的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-02-02
  • .Net防sql注入的几种方法

    .Net防sql注入的几种方法

    这篇文章主要给大家总结介绍了关于.Net防sql注入的几种方法,文中通过示例代码介绍的非常详细,对大家学习或者使用.Net具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • Asp.Net实现的通用分页函数

    Asp.Net实现的通用分页函数

    这篇文章主要介绍了Asp.Net实现的通用分页函数,结合实例形势分析了asp.net分页函数的功能,定义及使用技巧,需要的朋友可以参考下
    2016-04-04
  • list泛型自定义排序示例

    list泛型自定义排序示例

    这篇文章主要介绍了list泛型自定义排序示例,实现List泛型类将制定元素至前排序,大家参考使用吧
    2014-01-01
  • Asp.net中使用文本框的值动态生成控件的方法

    Asp.net中使用文本框的值动态生成控件的方法

    这篇文章主要介绍了Asp.net中使用文本框的值动态生成控件的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-05-05
  • asp.net(C#)生成Code39条形码实例 条码枪可以扫描出

    asp.net(C#)生成Code39条形码实例 条码枪可以扫描出

    这篇文章主要介绍了asp.net(C#)生成Code39条形码实例 条码枪可以扫描出。需要的朋友可以过来参考下,希望对大家有所帮助
    2014-02-02
  • ASP.NET Eval进行数据绑定的方法

    ASP.NET Eval进行数据绑定的方法

    ASP.NET Eval在数据绑定方面的应用是众所周知的,不过技术在发展,当ASP.NET Eval 1.1变成ASP.NET Eval 2.0的时候,在操作的时候会有什么变化呢?
    2013-04-04

最新评论