查询以四舍五入(例如:300.501 到 300.500)
Posted
技术标签:
【中文标题】查询以四舍五入(例如:300.501 到 300.500)【英文标题】:Query to Round the numbers (ex: 300.501 to 300.500) 【发布时间】:2019-05-26 02:52:06 【问题描述】:我有如下需求:(需要SQL查询) - 如果输入是 300.501,那么输出应该是 300.500 - 如果 300.503 那么输出应该是 300.505 - 如果 300.507 那么输出应该是 300.505 - 如果是 300.508 那么输出应该是 300.510
所以,基本上我认为它是四舍五入到最接近的 5
尝试了几个舍入函数但没有成功。我们是否需要截断最后一位数字并相应地更改整个数字?
【问题讨论】:
你会像在常规算术中那样做。除以 5。将结果四舍五入。乘以 5。 【参考方案1】:要将数据四舍五入到最接近的 0.005 (1/200),将其乘以 200,四舍五入,然后除以 200,例如
SELECT ROUND(300.501*200) / 200, ROUND(300.503*200) / 200
输出:
ROUND(300.501*200) / 200 ROUND(300.503*200) / 200
300.5000 300.5050
Demo on dbfiddle
【讨论】:
为什么投反对票?这不会产生 OP 使用 SQL 查询所要求的结果吗?以上是关于查询以四舍五入(例如:300.501 到 300.500)的主要内容,如果未能解决你的问题,请参考以下文章
MS ACCESS OpenRecordset 四舍五入小数
Redshift - 在查询的“输入”部分使用 300K 的值进行查询
JAVA编程:输出值要求格式化为:以逗号作为每千位的间隔符,并且小数点后四舍五入为两位。例如:123.45