我正在尝试确定表示十进制数的给定字符串是否可以完全表示为double.我特别热衷于javascript解决方案,但一切都很好(我可以移植).
我可以parseFloat,stringify,然后看看该字符串是否与输入字符串匹配,但我想知道是否有更好/更快的方法来做到这一点.我想有一个对IEEE浮点标准有深入了解的人会有更好的方法来做到这一点,但那个人不是我.
任何具有不5以其结尾的小数部分的数字不能完全表示为二进制浮点数.
可表示的数字具有小数部分,其是总和1/(2^N).任何此类总和都以数字结尾5.
这并不意味着5最终的数字总是可以表示,为了改进这一点,我们必须检查小数部分是否确实是这样的总和.