SQL如何将整数值四舍五入到小数点后2位
Posted
技术标签:
【中文标题】SQL如何将整数值四舍五入到小数点后2位【英文标题】:SQL how to round down an integer value to 2 decimal places 【发布时间】:2021-12-01 12:49:52 【问题描述】:我正在尝试执行一个 SQL 查询,该查询将一个值拉到小数点后 2 位,如下所示。问题是该值实际上是 8.498,它输出为 8.50,而我需要将其输出为 8.49。
下面是我当前的代码,有没有办法可以使用 FLOOR 将值输出为 8.49
SELECT gas_date as 'time', provisional_price
from INT654
where provisional_price is not null AND hub_name = 'Sydney' AND provisional_schedule_type = 'D-2'
order by gas_date desc limit 1
【问题讨论】:
ROUND(FLOOR(8.498 * 100) / 100, 2)
你想用金钱来做这件事几乎肯定意味着你有一个 XY 问题....
【参考方案1】:
如果你真的想四舍五入,你必须这样做:
floor(provisional_price*100)*.01
但如果你真的想四舍五入到零(正数向下,负数向上),你可以这样做:
truncate(provisional_price,2)
【讨论】:
【参考方案2】:如果您想截断到两位小数而不是四舍五入,您可以使用 ROUND 函数并将第三个参数作为 0 以外的任何值发送。
ROUND (临时价格, 2, 1)
官方文档:https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2005/ms175003(v=sql.90)?redirectedfrom=MSDN
【讨论】:
以上是关于SQL如何将整数值四舍五入到小数点后2位的主要内容,如果未能解决你的问题,请参考以下文章