gpt4 book ai didi

C#将一个数字去掉末尾无效的0后展示(举例:500.0000变成500)

转载 作者:撒哈拉 更新时间:2024-12-19 16:49:42 57 4
gpt4 key购买 nike

场景:

最近在写代码的时候遇到提示语金额后面无效0过多的问题,比如 。

用户输入金额:500元, 。

因为数据库是有对于decimal有限制的[Column(TypeName = "numeric(18,6)")],小数位可以达到6位 。

则保存到数据库保存之后变成了500.000000.

提示语:变动金额不能超过500元   。

              变动金额不能超过[从数据库中拿到的金额]元 。

实际上提示语变成了:变动金额不能超过500.000000元 。

提示语中这样子的金额看着确实有点不太友好,所以建议在提示语中直接将小数位末尾后无效的0去掉.

我也看了大多数建议的方案是:保留N位小数,去掉N未小数之后的0, 。

但是这样子容易弄掉精准数据:比如500.001000,保留N位小数,去掉末尾的0, 。

比如保留2位小数变成了:500.00 ,和实际的500.001 就有差异了,无法确认第几位小数是有效值,此方案在我使用的场景中是不可取的。  。

我想要达到的效果:

  。

  。

经过试验,归纳出以下代码:

   /// <summary>
        /// 去掉小数位后面的无效的0
        /// </summary>
        /// <param name="num"></param>
        /// <returns></returns>
        public static string TrimEndZero(decimal num)
        {

            if (num == 0) return "0";
            decimal floorNumber;
            if (num < 0)
            {
                //负数部分
                floorNumber = Math.Ceiling(num);
            }
            else
            {
                //非负数部分
                floorNumber = Math.Floor(num);
            }
            var diff = num - floorNumber; //得到0.几的小数          
            if (diff == 0)
            {
                //是一个整数
                return num.ToString("#");
            }
            else
            {
                //是小数
                return num.ToString().TrimEnd('0');
            }

        }
View Code

  。

==========================================以下是园友们推荐的写法=================================== 。

评论区园友们推荐了很多简易的写法,大家可以去翻阅看看,找一个最适合的写法 。

  。

  。

最后此篇关于C#将一个数字去掉末尾无效的0后展示(举例:500.0000变成500)的文章就讲到这里了,如果你想了解更多关于C#将一个数字去掉末尾无效的0后展示(举例:500.0000变成500)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

57 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com