【发布时间】:2016-02-17 15:31:27
【问题描述】:
以下查询在 Sybase ASE
上运行SELECT ROUND(FixedRate,2) AS FixedRate FROM TableName WHERE ID=10000905;
结果是
固定利率
0.28
以下查询在 Oracle 11g
上运行SELECT Round(FIXED_RATE,2) AS FixedRate FROM TableName WHERE ID=10000905;
结果是
固定
0.29
两个 db 中未取整的值为 0.285。 sybase中FixedRate的数据类型是float,Oracle中是float(126)。
为什么会有差异(Sybase 中的 0.28 和 Oracle 中的 0.29),我怎样才能使两个数据库中的差异相同?
【问题讨论】:
-
两个数据库中未取整的完整值是多少?每个的数据类型是什么?
-
你不应该首先使用
float。在 Oracle 中使用 exact 数字类型,例如number。
标签: oracle oracle11g rounding sap-ase