我正在尝试实施http://www.exploringbinary.com/correct-decimal-to-floating-point-using-big-integers/
我已经通读了好几遍,感觉很舒服。第一步是假设值是字符串格式。我的实现是假设该值是双格式的。
是否可以获得构成浮点数/双精度数的小数部分的位数?
例如值 3.24325(我希望不能用二进制精确表示,因为我只是随机选择的)。我想知道小数部分的长度为 5 位,以便我可以继续使用上面链接中的算法。
使用类似的modf
结果乍一看似乎是正确的小数值,但实际上是四舍五入的(假设小数部分不能以二进制精确表示)。从原始值中减去原始值的类型转换 int 会导致相同的四舍五入的小数。用 sprintf 将值记录在字符串中会导致类似的问题(我相信),但我没有足够的时间来确认 - 我刚刚开始使用它。
上面链接中算法的第1步有什么解决方案吗?
谢谢你。