最近翻看java源码,其中Double类的toString方法很是费解,也就是double转换成字符串的算法,源码根本看不懂,求大神给我补脑!
1条回答
- threenewbee 2017-02-19 07:23关注
double根据ieee754浮点数标准,分为阶符、阶码、符号和尾数四个部分。
首先要做的是转换成10进制的形式,把尾数转换为10进制,如果符号有的话,那么加上负号。
然后根据阶符不同,如果为正,乘以2的阶码次方,反之除以2的阶码次方。
关于尾数转换为十进制,比如0.10100110[2]转换为10进制,就是每一位乘以2^(-N)次方,最后把结果加起来。
当然,java的转换还涉及科学计数法,那么就更复杂一点了。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 Arduino红外遥控代码有问题
- ¥15 数值计算离散正交多项式
- ¥30 数值计算均差系数编程
- ¥15 redis-full-check比较 两个集群的数据出错
- ¥15 Matlab编程问题
- ¥15 训练的多模态特征融合模型准确度很低怎么办
- ¥15 kylin启动报错log4j类冲突
- ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
- ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
- ¥15 onvif+openssl,vs2022编译openssl64