簡體   English   中英

為什么在 c# 中將雙精度轉換為浮點時我的精度會丟失?

[英]Why my precision getting loss while converting double to float in c#?

我在 c# 中具有雙值作為10293.01416015625並且我正在嘗試轉換為浮點數。 由於 float 只有 24 位,我想得到的結果為10293.0141 但我得到的價值是10293.0137

double value = 10293.01416015625;
float converted = (float)value;

預期值- 10293.0141

正在獲得的價值- 10293.0137

提前致謝

System.Single 文檔

單個值具有最多 7 位十進制數字的精度,盡管內部維護最多 9 位數字。

您的結果最多為 7 位有效數字 (10293.01)。 您不應該期望通過float獲得更多。

最接近 10293.01416015625 的float的確切值是 10293.013671875 和 10293.0146484375。 兩者都與您嘗試表示的值相差 0.00048828125。

暫無
暫無

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

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