1

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

我想避免将这些数字存储为字符串,因为还有一组存储过程可以对这些值进行一些数字运算。

4

3 回答 3

1

不。从 Oracle 的角度来看,数字 0.100、0.1 和 .1 都是相同的。它们都将具有相同的内部表示。

如果您需要存储精度,则需要第二列来存储精度。或者,您需要将数字存储在一VARCHAR2列中并将其转换为数字,然后再进行数字运算。当然,您需要在数字运算逻辑中定义处理精度的规则。例如,如果将 0.100 和 0.22 相加,结果是 0.32 还是 0.320?

于 2012-08-09T03:49:13.887 回答
0

我建议存储查询和数学运算的数值,以及“输入”的字符串版本以用于审计目的。

于 2012-08-13T06:08:16.740 回答
-1

我建议如果用例只需要显示额外的数字,然后将其转换为字符串作为将数据发送到报告之前的最后一步:

SELECT
    TO_CHAR(column_name, 999.999)
FROM
    table_name;
于 2012-08-09T03:54:19.390 回答