最近写了一个小工具需要从文件中读出数字以double类型显示并计算(文件中包含空格换行逗号作为完整数字标记 ,并且运行负数),由于需要从读取到的字符串中截取数字稍微麻烦,便动手封装个方法截取转换一次完成。
设计函数的过程中也遇到一些小问题,比如整数部分和小数部分的计算方式不一样,只能通过分开计算然后相加完成转换, 整数部分需要乘以10相加 ,小数部分需要除以10相加 ,并且小数部分遇到0不相加选择跳过。
每一次得到一个完整的数后变量清零,进行下一个数的计算,double类型整数位加小数位一共是18位数字(包括小数点、负号在内最多19个),如果一个完整的数(整数位加小数位)等于19将会强制相加组成一个double数字 后面多余的数字舍去 ,在遇到一个空格、换行或者逗号后进行下一个数的计算。
函数定义:
int charTodouble(double *ndst,int Num,void* src,int len);
代码实现:
//第一个参数: double类型目标地址 比如定义一个double数组用来接收转换后的数据