pts*_*pts 3 java string double ieee-754
我有一个64位long包含IEEE 754表示的a double.我想将它转换为字符串就像标准Java Double.toString(d)一样.但是,我不能使用Double该类的任何方法,因为它们是错误的.(String.valueOf(d)并且"" + d也不工作,因为它们在Double.toString(d)内部使用.NumberFormat不起作用,因为它会失去精度.)所以我需要纯Java代码来进行转换.
我在哪里可以找到这样的代码?我尝试了GNU Classpath的源代码,但它使用本机方法进行此转换.
我搜索了一下,发现:dtoa.java.这似乎很复杂,但代码是GPL许可证(或Mozilla Public License 1.1许可证).
我希望它会对你有所帮助.
(我甚至发现了你提到的bug.)
编辑:
[安德鲁汤普森]是对的,你经常(总是?)失去浮点精度.正如此处所指出的,您可能想要使用BigDecimal
| 归档时间: |
|
| 查看次数: |
1182 次 |
| 最近记录: |