sql - 如何在不自动舍入的情况下在 SQL Server 中返回具有两位小数的数字
问题描述
这很奇怪,我有一个成本价和一个平均成本价。avg 由 avg 函数确定,并与成本价格相比,如下所示:
Cost Price | Average Cost Price
8.24 8.23897666
现在,当我使用下面的代码时,即使我没有指定任何圆形函数,它也会将其更改为 8.24
select cast(8.23897666 as numeric(18,2))
我尝试将其转换为浮点数,但仍将其四舍五入为 0.24,即使我希望它只返回 2 位小数。
任何人都可以对此有所了解,因为我不确定为什么会这样?AS 不管小数点前的数字是多少,我都将返回完整的数字和 2 个小数位。
解决方案
您可以使用floor()
整数除法:
select floor(8.23897666 * 100) / 100
或者更好的是,使用round()
非0
第三个参数:
select round(8.23897666, 2, 1)
推荐阅读
- laravel - Laravel TypeError: 参数 1 传递给 Tymon\JWTAuth\JWTGuard: :login() 必须实现接口 Tymon\JWTAuth\Contracts\JWTSubject
- format - 有没有办法将 Octave 中的输出格式设置为给定数量的有效数字?
- arangodb - ArangoDB 数组查询数组
- matlab - 在matlab中转置二维矩阵的线性索引
- javascript - 如何每分钟更新一次highchart
- ios - 在可访问性期间禁用集合视图 ios 的页码配音
- api - Spotify API:热门从歌曲和艺术家的文本列表生成播放列表
- sql - 如何将pandas中的以下代码重写为sql?
- sql - 要作为列提取的 SQL 查询字符串
- c++ - "ret.push_back(vector) 是什么意思
());“ 意思是?