java源码解读double转换成字符串的算法

最近翻看java源码,其中Double类的toString方法很是费解,也就是double转换成字符串的算法,源码根本看不懂,求大神给我补脑!

1个回答

double根据ieee754浮点数标准,分为阶符、阶码、符号和尾数四个部分。
首先要做的是转换成10进制的形式,把尾数转换为10进制,如果符号有的话,那么加上负号。
然后根据阶符不同,如果为正,乘以2的阶码次方,反之除以2的阶码次方。
关于尾数转换为十进制,比如0.10100110[2]转换为10进制,就是每一位乘以2^(-N)次方,最后把结果加起来。
当然,java的转换还涉及科学计数法,那么就更复杂一点了。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问