有没有办法在Oracle中保持数字精度(0.100 vs 0.1)?出于问责原因,需要存储精度。
我想避免将这些数字存储为字符串,因为还有一组存储过程会对这些值进行一些数字处理。
答案 0 :(得分:1)
没有。从Oracle的角度来看,数字0.100,0.1和.1都是相同的。他们都有相同的内部陈述。
如果需要存储精度,则需要第二列来存储精度。或者,您需要将数字存储在VARCHAR2
列中,并在进行数字运算之前将其转换为数字。当然,您需要在数字运算逻辑中定义处理精度的规则。例如,如果添加0.100和0.22,则结果为0.32或0.320?
答案 1 :(得分:0)
我建议将查询和数学运算的数值存储起来,并将字符串版本“输入”用于审计目的。
答案 2 :(得分:-1)
我建议如果用例只需要显示其他数字,那么在将数据发送到报告之前将其转换为字符串作为最后一步:
SELECT
TO_CHAR(column_name, 999.999)
FROM
table_name;