【问题标题】:How to remove less than hundred fraction of a decimal如何去除小数的不足百分数
【发布时间】:2014-05-22 17:42:32
【问题描述】:

我想删除任何小于百位小数的分数。例如,如果它是 7526.50,那么我希望它是 7500(扣除 26.50)。在 C# 中,我这样做如下。

NetWage = decimal.Truncate(netEarning / 100) * 100;

如何在 Sql (MS SQL Server) 中做到这一点?

在 C# 中有没有更优雅的方法来做到这一点?

【问题讨论】:

  • 你只需要四舍五入到最接近的100?
  • @hometoast 他需要截断(不是四舍五入)到最接近的100,因此使用Truncate方法。
  • 模数是这里的方法。使用 % 运算符。

标签: c# sql .net math decimal


【解决方案1】:

在 C# 中有没有更优雅的方法来做到这一点?

我不确定这是否优雅,但有一种方法(我使用)。

decimal d =7526.50m;
decimal truncated = d - (d % 100);

您也可以在 SQL 中应用相同的逻辑。

【讨论】:

    【解决方案2】:

    在 C# 中:

    Math.Round(7526.50m / 100m, 0) * 100m
    

    在 SQL Server 中:

    SELECT ROUND((7526.50 / 100), 0) * 100
    

    如果您需要整数值,而不是十进制值,请改用:

    在 C# 中:

    (int) (Math.Round(7526.50m / 100m, 0) * 100m)
    

    在 SQL Server 中:

    SELECT CAST( ROUND((7526.50 / 100), 0) * 100 AS INT)
    

    【讨论】:

      【解决方案3】:

      您可以尝试在 T-SQL 中进行以下操作。

      select floor(cast(7526.50/100 as int))*100 as mynum
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-08-11
        • 1970-01-01
        • 2015-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-01
        • 1970-01-01
        相关资源
        最近更新 更多