將 Oracle `NUMBER` 高精度數值轉換為程式語言 (C#/Java) 基本類型時,拋出 溢出/精度遺失 錯誤。Oracle `NUMBER` 最高支援 38 位精度,遠超 `decimal`/`double` 範圍。
-- 保留 5 位小數,四捨五入 SELECT MIN(pval), MAX(pval), ROUND(AVG(pval), 5) FROM hvm_data_dga; -- 除法精度控制 SELECT ROUND(32/14, 3) FROM dual; -- 2.286 SELECT ROUND(32/14, 2) FROM dual; -- 2.29
SELECT TRUNC(AVG(pval), 5) FROM hvm_data_dga;
| 函數 | 行為 | 範例 | 結果 |
|---|---|---|---|
| ROUND(n, p) | 四捨五入保留 p 位小數 | ROUND(1.2345, 2) | 1.23 |
| TRUNC(n, p) | 直接截斷保留 p 位 | TRUNC(1.2345, 2) | 1.23 |
| CEIL(n) | 向上取整 | CEIL(1.01) | 2 |
| FLOOR(n) | 向下取整 | FLOOR(1.99) | 1 |