【问题标题】:SQL Server how to round money variable up if decimal part is the same or greater than 0.5 [closed]如果小数部分相同或大于0.5,SQL Server如何将货币变量向上舍入[关闭]
【发布时间】:2019-08-20 12:59:04
【问题描述】:

我有一个类型为money 的变量@value,如果它等于或大于0.5 则需要向上取整,否则向下取整。一些例子:

2.5 --> 3
2.4999 --> 2
2.5001 --> 3
2.4 --> 2
2.7 --> 3

【问题讨论】:

  • 幸运的是,T-SQL 的设计者在命名ROUND 函数时并没有不必要的想象力。

标签: sql-server


【解决方案1】:

您可以使用ROUND() 函数来做到这一点:

CREATE TABLE cash (val MONEY);

INSERT INTO cash (val)
VALUES (2.5), (2.4999), (2.5001), (2.4), (2.7);

SELECT *, CAST(ROUND(val, 0) AS INT)
FROM cash;

SQL Fiddle

【讨论】:

  • 谢谢,我正在使用一个函数进行舍入,它只包含 round(@var, 1),但是当我将参数设置为 money 时它不会舍入,我必须将其设置为 int但我实际上传递了一个money 变量,这是为什么呢?
  • 错误,需要更多细节。这仅回答您当前的问题。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-15
  • 2022-08-04
  • 2011-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多