7. 計算値が不正確。
計算式 FLOAT4
型使用
SELECT n * 1 FROM t;
(n=59.95の場合)
59.9500007629395
SELECT SUM(n * 1) FROM t;
(n=59.95 * 10件の場合)
599.500007629395
SELECT POWER(n, 10) FROM t;
(n=0.1の場合)
1.00000014901162
e-010
8. 等価性比較で予期しない結果となる。
検索条件 FLOAT4
型使用
SELECT n * 1 FROM t
WHERE
n = 59.95;
該当なし
SELECT n * 1 FROM t
WHERE
n = 59.9500007629395;
該当なし
SELECT n * 1 FROM t
WHERE
ABS(n - 59.95) < 0.000001;
59.9500007629395
10. 計算値が正確な値になる。
計算式 FLOAT4
型使用
NUMERIC(4, 2)
型使用
SELECT n * 1 FROM t;
(n=59.95の場合)
59.9500007629395 59.95
SELECT SUM(n * 1) FROM t;
(n=59.95 * 10件の場合)
599.500007629395 599.5
SELECT POWER(n, 10) FROM t;
(n=0.1の場合)
1.00000014901162
e-010
1.000000
e-010
11. 予期通りの結果となる。
検索条件 FLOAT4
型使用
NUMERIC(4, 2)
型使用
SELECT n * 1 FROM t
WHERE
n = 59.95;
該当なし 59.95
SELECT n * 1 FROM t
WHERE
n = 59.9500007629395;
該当なし 該当なし
SELECT n * 1 FROM t
WHERE
ABS(n - 59.95) < 0.000001;
59.9500007629395 59.95