我手上有25.555,我想把它换成25.555000。我使用了CAST(25.555 AS DEC(9,6)),但得到的结果是25.554999。注:有些工作正常(例如:16.667至16.667000),但并非全部。1.第一个整数是位数的总数,其范围可以从1到3。1.第二个整数是小数点右边的位数,其范围可以从0到6。
CAST(25.555 AS DEC(9,6))
eulz3vhy1#
不要将枚举数强制转换为DOUBLE。将其转换为DEC (25),根据Decimal arithmetic in SQL从DEC (25) / INT得到DEC (31, 6)(请看Division的公式)。
DOUBLE
DEC (25)
DEC (25) / INT
DEC (31, 6)
Division
VALUES -- CAST (CAST (SUBSTRING (SUBSTRING ('0103019780199999910006025555000', 1, 36), 23, 9) AS DOUBLE ) / 1000000 AS DEC (9, 6)) CAST (CAST (SUBSTRING (SUBSTRING ('0103019780199999910006025555000', 1, 36), 23, 9) AS DEC (25)) / 1000000 AS DEC (9, 6)) ;
1条答案
按热度按时间eulz3vhy1#
不要将枚举数强制转换为
DOUBLE
。将其转换为
DEC (25)
,根据Decimal arithmetic in SQL从DEC (25) / INT
得到DEC (31, 6)
(请看Division
的公式)。