簡體   English   中英

識別字符串數字是否可以在浮點(或雙精度)中完全表示的最佳/最快方法是什么?

[英]What's the best/fastest way to recognize if a string number is exactly representable in floating point (or double)?

我正在嘗試確定表示十進制數的給定字符串是否可以完全表示為double。 我特別熱衷於JavaScript解決方案,但一切都很好(我可以移植)。

我可以parseFloat ,stringify,然后查看該字符串是否與輸入字符串匹配,但我想知道是否有更好/更快的方法來執行此操作。 我想有一個對IEEE浮點標准有深入了解的人會有更好的方法來做到這一點,但那個人不是我。

任何具有不以5結尾的小數部分的數字都不能完全表示為二進制浮點數。

可表示的數字具有小數部分,其是1/(2^N)的總和。 任何這樣的總和以數字5結束。

這並不意味着最終5的數字總是可以表示,為了改進這一點,我們必須檢查小數部分是否確實是這樣的總和。

暫無
暫無

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

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