gpt4 book ai didi

SQL Server ROUND 不工作

转载 作者:行者123 更新时间:2023-12-03 04:51:02 26 4
gpt4 key购买 nike

我有一个表,其中一列是价格 (decimal(18,9)),另一列是交易量 (bigint)。

我将两个值相乘,然后应用round函数,但没有任何效果。

我希望它的精度为小数点后两位。怎么做?

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

我想简单地将价格乘以数量,以获得总值(value)。

最佳答案

ROUND() 只是向上或向下更改小数值,不会更改数据类型精度。

您想要的是转换为小数位数为 2 的 DECIMAL

SELECT 
CONVERT(DECIMAL(18,2), Price * Volume) AS DecimalConversion
FROM
A

将较高位数的小数(价格 * 数量)转换为较低位数会自动舍入最后一位数字:

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

关于SQL Server ROUND 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50811639/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com