如何获得唯一确定给定双精度的“最短”BigDecimal

2024-01-02

基本上,我很好奇如何掌握new BigDecimal(Double.toString(d))无需经历创建字符串的过程。

The 的文档Double.toString http://download.oracle.com/javase/6/docs/api/java/lang/Double.html#toString%28double%29相当复杂(而且有趣)。据我了解,该方法实际上并不返回给定双精度数实际表示的数字的字符串表示形式,而是返回(附近)最短实数的字符串表示形式唯一标识给定的双精度数.

(我实际上并不need这。如果我这样做的话,无论如何我可能都会通过一根绳子。我只是对这个找到唯一确定给定双精度值的“短”实数的算法感到好奇。)

(这是一个后续问题这个问题 https://stackoverflow.com/questions/6063253/what-is-the-best-way-to-separate-double-into-two-parts-integer-fraction-in-ja/6063376#6063376.)


See: 如何准确打印浮点数 http://portal.acm.org/citation.cfm?id=989431 and 如何准确读取浮点数 http://portal.acm.org/citation.cfm?id=93557

实施:here http://www.cs.indiana.edu/~burger/fp/ and here http://netlib.bell-labs.com/netlib/fp/

有一个新出版物 http://portal.acm.org/citation.cfm?id=1806623那些寻求提供解决方案的人可能会对这个主题感兴趣。如果您愿意在 99.8% 的情况下使用最短的字符串,并在其余情况下使用准确但不是最短的字符串,那么它(Grisu2)无需使用 bignums 即可工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获得唯一确定给定双精度的“最短”BigDecimal 的相关文章

随机推荐