有没有办法在Oracle中保持数字精度(0.100 vs 0.1)?

时间:2012-08-09 02:54:30

标签: oracle decimal precision

有没有办法在Oracle中保持数字精度(0.100 vs 0.1)?出于问责原因,需要存储精度。

我想避免将这些数字存储为字符串,因为还有一组存储过程会对这些值进行一些数字处理。

3 个答案:

答案 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;