[英]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.