[英]SQL Server ROUND not working
我有一张表,其中一列是Price
( decimal(18,9)
)和另一Volume
( bigint
)。
我将两个值相乘,然后应用round
函数,但没有任何效果。
我希望它是2小数位精度。 怎么做?
SELECT
CAST((Price * Volume) AS decimal(38,2)) test1,
ROUND((Price * Volume), 2) 'VolumePrice',
CONVERT(DOUBLE PRECISION, (Price * Volume)) 'test2'
FROM a
表值是这样的:
Price Volume
-------------------------
63.380000000 131729
63.380000000 61177
44.860000000 246475
44.860000000 246475
44.860000000 63937
97.990000000 84620
191.650000000 438821
我只想将价格乘以数量即可得出总价值。
ROUND()
只是向上或向下更改十进制值,而不会更改数据类型的精度。
您想要以2的比例转换为DECIMAL
。
SELECT
CONVERT(DECIMAL(18,2), Price * Volume) AS DecimalConversion
FROM
A
将小数位数( Price * Volume
)转换为小数位数将自动舍入最后一位:
SELECT
CONVERT(DECIMAL(18,2), '1.901999'), -- 1.90
CONVERT(DECIMAL(18,2), '1.909999'), -- 1.91
CONVERT(DECIMAL(18,2), '1.905999'), -- 1.91
CONVERT(DECIMAL(18,2), '1.904999') -- 1.90
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.