首頁 > 後端開發 > C++ > 為什麼雙精確度的小數位數比宣傳的 15 位多?

為什麼雙精確度的小數位數比宣傳的 15 位多?

Patricia Arquette
發布: 2024-12-06 20:40:18
原創
572 人瀏覽過

Why Does Double Precision Appear to Have More Decimal Places Than Its Advertised 15?

雙精度和小數位精度

在電腦程式設計中,雙精確度資料類型通常被假定為具有 15 位小數的近似精度。但是,某些數字表示形式(例如 1.0/7.0)在變數內部表示時似乎具有更高的精確度。本文將探討為什麼會發生這種情況,以及為什麼精確度通常被描述為小數點後 15 位左右。

內部表示

IEEE 雙精度數有 53 個有效位,約等於 15.95 個小數位。為了考慮舍入,實現將精度 (DBL_DIG) 設定為 15。這幾乎提供了超出 DBL_DIG 所暗示的精度的額外十進制數字。

輸出精確度

顯示雙精確度時,編譯器通常會根據精確度對值進行捨入。例如,1.0/7.0,當顯示為“%.17g”時,具有 17 位元精度。但是,如果使用“%.64g”,則不會出現超出預期 15 位元精度的有效數字。

結論

雙精度數字具有允許大約 15.95 位十進制數字的內部表示形式的精度。然而,由於四捨五入的原因,顯示精度通常設定為小數點後 15 位。此解釋有助於闡明為什麼某些精確數字(例如 1.0/7.0)在內部似乎具有更高的精度,但在顯示時仍符合估計的 15 位元精度。

以上是為什麼雙精確度的小數位數比宣傳的 15 位多?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板