我有一个表,其中包含一个以文本(VARCHAR)形式存储的小数(模式<4位数字>。<10位数字>)
`COST_VALUE` varchar(50) DEFAULT NULL,
当我执行以下脚本时,此值的乘积转换为DOUBLE乘以COUNT,如下所示:
Select ... count(OTHER_ATTR) as QUANTITY, record.COST_VALUE as COST, CAST(techno.COST_VALUE AS DOUBLE) * count(OTHER_ATTR)) as TOTAL
在某些领域,我得到了一个错误的结果(实际上是一个不精确的结果):
简单的乘法也不精确:
record.COST_VALUE * count(OTHER_ATTR)) as TOTAL
DECIMAL(CAST(techno.COST_VALUE AS DECIMAL)返回结果为整数(不是分数)
如何在不使用CAST(techno.COST_VALUE AS DOUBLE(10,2))之类的有限值进行转换的情况下获得精确结果?
谢谢!