【发布时间】:2013-12-05 19:45:46
【问题描述】:
我的表在SQL Server 中有一个float 数据类型的列
我想返回我的 float 数据类型列值,小数点后 2 位。
例如:如果我插入12.3,它应该返回12.30
如果我插入12,它应该返回12.00
【问题讨论】:
标签: sql-server sql-server-2008 sqldatatypes
我的表在SQL Server 中有一个float 数据类型的列
我想返回我的 float 数据类型列值,小数点后 2 位。
例如:如果我插入12.3,它应该返回12.30
如果我插入12,它应该返回12.00
【问题讨论】:
标签: sql-server sql-server-2008 sqldatatypes
select cast(your_float_column as decimal(10,2))
from your_table
decimal(10,2) 表示您可以使用最大总精度为 10 位的十进制数。其中小数点后2个,小数点前8个。
可能的最大数字是99999999.99
【讨论】:
(10,2) 定义十进制值的精度。逗号后的10 数字和2 数字。
select cast(50/20 as decimal(5,2)) from sometable limit 1 这样的简单查询,但输出是 2.00(应该是 2.5)。
2。只需使用select 50 / 20.0。由于20.0 已经是小数,因此转换按预期工作。见sqlfiddle.com/#!3/9eecb7/8216
你也可以做一些更短的事情:
SELECT FORMAT(2.3332232,'N2')
【讨论】:
cast(your_float_column as decimal(10,2)) 因为我不知道我的小数有多大。
你也可以使用下面的代码来帮助我:
select convert(numeric(10,2), column_name) as Total from TABLE_NAME
其中Total 是您想要的字段的别名。
【讨论】:
如果您还想进行投射和回合,也可以使用以下功能。这可能会对您或其他人有所帮助。
SELECT CAST(ROUND(Column_Name, 2) AS DECIMAL(10,2), Name FROM Table_Name
【讨论】:
select cast(56.66823 as decimal(10,2))
这将返回56.67。
【讨论】: