如何为 sql 服务器编写一个小数点后两位的数字?
通常,可以通过使用参数定义 SQL 中的数字来定义它的精度。在大多数情况下,这将是 NUMERIC(10,2)或 Decimal(10,2)-将定义一个列为10个总数字的数字,精度为2(小数位)。
NUMERIC(10,2)
Decimal(10,2)
为了清楚起见而编辑的
使用 Str()函数。它需要三个参数(数字、要显示的数字总字符和要显示的小数位数)
Str()
Select Str(12345.6789, 12, 3)
显示:’12345.679’(3个空格,5个数字12345,1个小数点和3个小数位(679)。- 如果必须截断,它会进行舍入(除非整数部分对于总大小来说太大,在这种情况下会显示星号)
总共12个字符,小数点右边3个。
试试这个
SELECT CONVERT(DECIMAL(10,2),YOURCOLUMN)
例如
SELECT CONVERT(DECIMAL(10,2),2.999999)
将导致输出 3.00
3.00
这对我有用,并且总是保持两位数分数
23.1 = = > 23.10
25.569 = = > 25.56
1 = = > 1.00
Cast(CONVERT(DECIMAL(10,2),Value1) as nvarchar) AS Value2
代码截图
这将允许总共10个数字,小数后面有2个值。这意味着它可以容纳十进制前8位和十进制后2位的值。
若要验证,请将该值放入以下查询中。
DECLARE vtest number(10,2); BEGIN SELECT 10.008 INTO vtest FROM dual; dbms_output.put_line(vtest); END;
将要插入的值(例如2.99)乘以100
然后将结果除以100,并在末尾加上.01:
299.01/100
如果你能接受 四舍五入的数字而不是截断它,那么它就是:
ROUND(column_name,decimals)
如果你只需要两个小数位,最简单的方法是. 。
SELECT CAST(12 AS DECIMAL(16,2))
或者
SELECT CAST('12' AS DECIMAL(16,2))
输出
12.00
试试这个:
declare @MyFloatVal float; set @MyFloatVal=(select convert(decimal(10, 2), 10.254000)) select @MyFloatVal Convert(decimal(18,2),r.AdditionAmount) as AdditionAmount
现在的孩子们是这样做的:
DECLARE @test DECIMAL(18,6) = 123.456789 SELECT FORMAT(@test, '##.##')
123.46
有两个小数的最简单的方法是使用“ F”参数的 SQL 格式:
SELECT FORMAT(5634.6334, 'F')
这是一个古老的问题,但我使用
FORMAT(10, 'N2')
输出10.00