我正在使用postgresql。我的數據庫中的表格有REAL
類型的列。當實數值超過七個零時,postgresql將其存儲爲例如1e + 007。通過查詢,值返回也爲1e + 007.但我需要的值爲10000000.解決方法是什麼格式化數據庫查詢返回的實際值
0
A
回答
0
如果使用浮點數的東西,他們不適合,包括在你所關心的幾乎任何東西你必須比更多的問題確切的數字介紹。
我建議您使用NUMERIC
,它是一個基數爲10(十進制)的數字類型,可以控制精度和縮放比例。見Numeric types。 NUMERIC
是執行計算較慢,並消耗更多的存儲空間,因此它並不總是正確的答案,但它是大量應用程序的理想選擇。
您可以使用花車,它只是困難,因爲你不能安全地進行比較確切的平等,必須使用四捨五入和格式化功能顯示等
例子:
regress=> select '1.2'::float8 - '1.0'::float8;
?column?
----------------------
0.199999999999999956
(1 row)
regress=> select '1.2'::numeric - '1.0'::numeric;
?column?
----------
0.2
(1 row)
像這些問題的另一個常見解決方案是使用應用程序定義的定點表示。如果您需要(比如說)保留2位小數,那麼您只需將數字2000.11
作爲200011
存儲在數據庫中,再乘以100.這是財務應用程序中的常用技術,儘管現在使用正確的小數數據類型更爲常見。
0
使用SQL CAST
。在DB2中爲我工作
select cast(cast(1e+007 as real) as decimal (15,2)) from sysibm.sysdummy1;
10000000.00
您可以根據您期望的值(15,0)設置小數位數。
0
select to_char(1e+007::real, '9999999999')
手冊中的更多細節:http://www.postgresql.org/docs/current/static/functions-formatting.html
+0
如果要鑄造的值包含10個以上的位置,常用的解決方案是什麼 –
相關問題
- 1. Webmatrix - 格式化MSSQL數據庫查詢
- 2. 格式化SQL查詢返回列
- 3. 從數據庫查詢控制器查詢返回的值不
- 4. 查詢只返回實際重複
- 5. peewee select()返回SQL查詢,而不是實際數據
- 6. Cypher查詢,格式/組返回值
- 7. 格式化函數的返回值
- 8. 如何讓Helenus返回CQL查詢的實際值?
- 9. Mongodb返回格式化的數據
- 10. JSON返回的數據在格式化
- 11. 如何使SPARQL查詢返回HTML表格格式的數據?
- 12. yii2查詢數據庫返回整數
- 13. UsbBulkInPipe不返回實際值
- 14. MySQL查詢返回0,當實際值不爲0
- 15. notepad ++將數據格式化爲實際的表格/列
- 16. 數據庫(SDF)返回的實際最大行數小於
- 17. 使用CodeIgniter向數組返回空值的數據庫查詢?
- 18. 格式化curl返回數據
- 19. Hibernate使正確的數據庫查詢,但返回null實體
- 20. 數據庫查詢總是返回true?
- 21. Android Firebase數據庫查詢返回null
- 22. 查詢數據庫,但返回null
- 23. Sqlite數據庫查詢返回null
- 24. 數據庫查詢只返回列名
- 25. 從數據庫返回值時的數字格式異常(JPA)
- 26. 格式化MySQL查詢數量返回一些給定的格式
- 27. Sqlite數據庫中的查詢後返回值的問題
- 28. 嘲笑對象返回實際數據
- 29. Node.js的:數據庫查詢後未定義返回值
- 30. MySQL查詢返回不在數據庫中的值
如果你省略'sysdummy1'部分,它也應該在Postgres中工作。 –