我正在使用MSSQL 2014,我想知道是否有更好的方法在10/3之类的简单部门中显示2位小数。
SELECT 10/3 -- returns 3
SELECT CONVERT(DECIMAL(10, 2), 10/3) -- RETURNS 3
SELECT CAST(10/3 AS DECIMAL(10,2)) -- RETURNS 3
我发现使其工作的唯一方法是将除数转换为float:
SELECT 10/CAST(3 AS FLOAT) -- returns 3.333333...
SELECT CONVERT(DECIMAL(10, 2), 10/CAST(3 AS FLOAT)) -- RETURNS 3.33
SELECT CAST(10/CAST(3 AS FLOAT) AS DECIMAL(10,2)) -- RETURNS 3.33
这两个最后选项是最好的方法吗?是否可以在没有任何演员/转换的情况下执行此操作?
答案 0 :(得分:2)
是的,要截断你必须指定你只需要两位数。如果是我,我会这样做:
SELECT cast(10/3.0 as decimal(10,2))
答案 1 :(得分:0)
答案 2 :(得分:0)
将一个整数除以另一个整数将产生整数。要么转换数字,要么使用值为10和3的float或decimal类型的变量。