/* 字符串转化为浮点型 */ void StringToFloat(char* pStr, float* pFNum) { if( !pStr ) return; if ( !IsDigitAndPoint(pStr) ) return;//判断是否为数字 float fNumInteger = 0.0f; float fNumDecimal = 0.0f; int nPointFlag = 0; int nPointCount = 0; while( *pStr != '/0' ) { if( '.' == *pStr ) { nPointFlag = 1; ++pStr; } if( !nPointFlag ) { fNumInteger *= 10; fNumInteger += *pStr++ - 48; } else { fNumDecimal *= 10; fNumDecimal += *pStr++ - 48; ++nPointCount; } } for( int i = 0;i < nPointCount;++i ) { fNumDecimal /= 10; } *pFNum = fNumInteger + fNumDecimal; } /* 判断是否为含有数字和点 */ int IsDigitAndPoint(char* pStr) { if( !pStr ) return 0; while( *pStr ) { if( ('0' > *pStr || *pStr > '9') && *pStr != '.' ) { return 0; } ++pStr; } return 1; }