如题,最近在用java写解析器,想知道把string转化为double的strtod怎么工作的。
2条回答 默认 最新
- technologist_30 2021-05-20 13:39关注
if ( (*p | 32) == 'e' ) //判断*p是e或E { expo = 0; factor = 10.L; switch (*++p) { case '-': //负号乘积因子就从0.1开始 factor = 0.1; case '+': //正号就从10开始 p++; break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': break; default ://非法字符就返回 value = 0.L; p = s; goto done; } while ( (unsigned int)(*p - '0') < 10u )//把指数取出来 expo = 10 * expo + (*p++ - '0'); while ( 1 )//把指数乘到value上 { if ( expo & 1 ) value *= factor; if ( (expo >>= 1) == 0 ) break; factor *= factor; } } done: if ( endptr != 0 ) *endptr = (char*)p; return (sign == '-' ? -value : value); }
大致过程
解决 1无用
悬赏问题
- ¥15 outlook无法配置成功
- ¥30 这是哪个作者做的宝宝起名网站
- ¥60 版本过低apk如何修改可以兼容新的安卓系统
- ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
- ¥50 有数据,怎么建立模型求影响全要素生产率的因素
- ¥50 有数据,怎么用matlab求全要素生产率
- ¥15 TI的insta-spin例程
- ¥15 完成下列问题完成下列问题
- ¥15 C#算法问题, 不知道怎么处理这个数据的转换
- ¥15 YoloV5 第三方库的版本对照问题