保留前3位小数

时间:2015-06-18 15:15:16

标签: mysql sql

我有这个查询来计算1 - (value2 / value1)

select ID 
     , 1 - (value2 / value1) as value3
from table
group by ID

如何让它具有第一个 3 小数?

2 个答案:

答案 0 :(得分:0)

如果您不需要四舍五入,则可以使用truncate

truncate(1 - (value2 / value1), 3) as value3

否则使用round

round(1 - (value2 / value1), 3) as value3

P.S。:您需要在group by子句中包含此计算列,或者在select子句中以某种方式对其进行汇总。

答案 1 :(得分:0)

您可以使用MySQL中的CAST()函数将值转换为小数。创建小数时,指定精度(最大位数),也可以指定小数点右侧的最大位数(刻度)。为简单起见,我们假设我们将小数位数限制为10位小数位数:

SELECT id, CAST((1 - (value2/value1)) AS DECIMAL(10, 3)) AS value3
FROM myTable
GROUP BY id;

请注意,这将在小数点右侧保留三位数的最大。它将忽略不必要的零,因此您可能会看到-1.5而不是-1.500之类的值。