- /*
- * 前些时间,一直在忙新一年的项目,在在写一计算器时,发现IC库中根本就没有什么
- * 类似的库(函数),只好自己解决!从网上也没有找对应的方法!
- * 现在发布出来,做为参考!
- */
- double CAL_StringToDouble(char *ch)
- {
- U16 iFor;
- U16 StrLen;
- double d;
- double Temp;
- S16 Index;
- BOOL DotFlag;
- BOOL IsPlus = TRUE;
- StrLen = C_GetStringLength(ch);
- d = 0.0;
- Index = 0;
- DotFlag = FALSE;
- if( StrLen == 0 )
- {
- d = 0.0;
- }else
- {
- for(iFor = 0; iFor < StrLen; iFor++)
- {
- if( (ch[iFor] >= '0') && (ch[iFor] <= '9') )
- {
- if(DotFlag == FALSE)
- {
- d = d * 10.0 + (ch[iFor] - '0');
- }else
- {
- Index++;
- Temp = (ch[iFor] - '0') * 1.0 / pow(10,Index);
- d = d + Temp;
- }
- }else
- if(ch[iFor] == '-')
- {
- IsPlus = FALSE;
- }else
- {
- DotFlag = TRUE;
- Index = 0;
- }
- }
- }
- if(!IsPlus)
- {
- d = -d;
- }
- return d;
- }