簡體   English   中英

為什么我的PostgreSQL“真實”數據被四舍五入?

[英]Why are my PostgreSQL “real” data being rounded?

我有一個表,其中有一個名為total的列,具有real數據類型。

但是我發現在查詢其值時該列已被四舍五入,如下所示:

SELECT total FROM data WHERE id='xe54g';
 total 
---------
  105861

UPDATE data SET total=105860.5 WHERE id='xe54g';        
UPDATE 1

SELECT total FROM data WHERE id='xe54g';
 total 
---------
  105860

UPDATE data SET total=105860.7 WHERE id='xe54g';        
UPDATE 1

SELECT total FROM data WHERE id='xe54g';
 total 
---------
  105861

\d+ data
   Column  |  Type | Collation | Nullable |  Default  | Storage  | Stats target | Description 
-----------+-------+-----------+----------+-----------+----------+--------------+-------------
 total     | real  |           |          | 0         | plain    |              | 

如何獲得返回的全精度? 我正在使用PG 11.1。

您可以通過設置獲得全精度

extra_float_digits = 3

然后PostgreSQL也將顯示可能包含舍入錯誤的十進制數字。

請注意, real數的有效位數很少。 如果使用double precision會更快樂。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM