如何在SQL Server中以两位小数的形式编写数字?
如何在SQL Server中以两位小数的形式编写数字?
试试这个
SELECT CONVERT(DECIMAL(10,2),YOURCOLUMN)
例如
SELECT CONVERT(DECIMAL(10,2),2.999999)
将会输出 3.00
使用Str()
函数。它需要三个参数(数字、要显示的总字符数以及要显示的小数位数)。
Select Str(12345.6789, 12, 3)
显示为:' 12345.679' (3个空格,5个数字12345,一个小数点和三个小数位数字(679)。- 如果需要截断,则四舍五入,(除非整数部分太大而无法容纳在总大小内,此时将显示星号。)
总共12个字符,小数点右侧有3个数字。
STR
的文档中有提到。以下是该页面的引用:“STR(1223,2)
将结果集截断为**。” - Mark Byers通常情况下,你可以通过定义参数在 SQL 中定义数字的精度。对于大多数情况,这将是 NUMERIC(10,2)
或 Decimal(10,2)
- 这将把一个列定义为具有 10 个数字总位数和 2 的精度(小数点后位数)的数字。
为了更加清晰明了而编辑
这是现在孩子们的做法:
DECLARE @test DECIMAL(18,6) = 123.456789
SELECT FORMAT(@test, '##.##')
123.46
DECLARE @test DECIMAL(18,6) = 0.456789
那么 SELECT FORMAT(@test, '##.##')
返回:.46
如何使其显示前导零:0.46
? - luisdevFORMAT
不会返回数字,而是返回一个 varchar,因此它只会增加数据类型混淆。 - Nick.McDermaid这对我很有用,可以始终保留两位小数
23.1 ==> 23.10
25.569 ==> 25.56
1 ==> 1.00
Cast(CONVERT(DECIMAL(10,2),Value1) as nvarchar) AS Value2
如果您只需要两位小数,最简单的方式是..
SELECT CAST(12 AS DECIMAL(16,2))
或者
SELECT CAST('12' AS DECIMAL(16,2))
输出
12.00
如果您可以接受对数字进行四舍五入而不是截断的话,那么它就是这样:
ROUND(column_name,decimals)
保留两位小数的最简单方法是使用 SQL 格式和 "F" 参数:
SELECT FORMAT(5634.6334, 'F')
这是一个老问题,但我使用
FORMAT(10, 'N2')
输出结果为 10.00
试试这个:
declare @MyFloatVal float;
set @MyFloatVal=(select convert(decimal(10, 2), 10.254000))
select @MyFloatVal
Convert(decimal(18,2),r.AdditionAmount) as AdditionAmount