这可能是一个非常愚蠢的问题,但是我一直在搜索一整天,但无法得到答案...
假设我有一个双精度浮点文字:5.21
。在Java中调用Double.toString( 5.21 )
会产生字符串"5.21"
。
[现在,假设我们有Java,但是没有toString
和valueOf
,也不能使用String.format
或仅通过连接对其进行格式化。假设我只有二进制表示形式,我如何将我的数字转换为字符串?
更具体地说,Double.toString
和dtoa
是如何工作的:我如何编写自己的toString
/ dtoa
函数(假设我们正在处理IEEE 754双精度浮点数?)]]
这可能是一个非常愚蠢的问题,但是我一直在搜索一整天,但没有得到答案。假设我有一个双精度浮点字面量:5.21。调用Double ....
这是一个令人难以置信的棘手问题,尤其是要有效而准确地解决它。但是你很幸运。这也是一个很好研究的问题。 Burger和Dyvbig的论文是标准参考文献:https://www.cs.indiana.edu/~dyb/pubs/FP-Printing-PLDI96.pdf