2012-05-17 55 views
4

我运行一个查询和我所有的号码都走出来5个小数点:SQL小数位数

例如 -

156713.55000 
2103613.03000 
2080.08000 

有一段简单的代码,我可以添加到我的代码'成本'表结果是2个小数点?

+4

其中RDBMS是这个SQL-服务器MySQL还请???张贴一个表格定义,或者至少告诉我们在'Cost'表格中调用了哪些列,以及它是什么数据类型。 – Bridge

+0

如果这是一个货币值只有两位小数,那么在列中最多应该有2个小数位,构造你的表/数据库,这样默认情况下不能添加不正确的值,在退出数据库时,_always_更适合将它们转换为“正确”值。 – Ben

回答

11

下面的例子会帮助你。

由于四舍五入:

select ROUND(55.4567, 2, 0) 
-- Returns 55.4600 

select CAST(55.4567 as decimal(38, 2)) 
-- Returns 55.46 

没有四舍五入:

select ROUND(55.4567, 2, 1) 
-- Returns 55.4500 

select CAST(ROUND(55.4567, 2, 1) as decimal(38, 2)) 
-- Returns 55.45 

使用Str()功能。它有三个参数(数量,数目的总字符显示,并将小数点后的数目,以显示

Select Str(12345.6789, 12, 3) 

显示:“12345.679”(3位,5位12345,小数点,和三个小数数字(679) - 这轮如果有截断

为12个字符的总数,用3到小数点右边

+0

对于'STR(float_expression [,length [,decimal]])'+1。 –

5

只需使用ROUND功能:

SELECT ROUND(column, 2) FROM Cost 

或者剥离的小数和圆,使用CAST

SELECT CAST(column as decimal(10, 2))