簡體   English   中英

為什么 IEEE754 中的浮點數不准確?

[英]Why Are Floating Point Numbers Inaccurate in IEEE754?

眾所周知,C中的數據類型float符合IEEE754。 並且 float 有 24 位有效二進制數字。 因此,如果超過 24 位,就會出現精度損失。

這樣,在不損失精度的情況下,最多可以浮點表示多少個十進制數字? 那最大的十進制數是多少?

眾所周知,C中的數據類型float符合IEEE754。

C 標准不需要這個。 許多 C 實現使用 IEEE-754 格式的浮點類型,但不完全符合標准。 一些 C 實現使用 IEEE-754 類型以外的浮點類型格式。

這樣,在不損失精度的情況下,最多可以浮點表示多少個十進制數字?

這不是一個明確的問題。 考慮數字 0.1。 作為十進制數字,它用單個數字表示,但作為二進制數字,它不能用任何有限位數表示。 這將是.0001100110011001100…

IEEE-754 binary32 格式,通常用於float ,具有足夠的精度,如果任何具有六位有效數字的十進制數字轉換為可以在 binary32 格式中表示的最接近的值,並且該 binary32 數字被轉換回四舍五入的十進制數字六位有效數字,結果將等於原始數字,只要第一次轉換沒有溢出或下溢格式的有限范圍。

暫無
暫無

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

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