atoi、atof、itoa、itow函数是windows平台下实现字符串与数值相互转换的函数;
下面看下这几个函数的声明:
1,atoi
原型:
int atoi ( const char * str ); |
作用:将字符串转为int型;
2,atof
原型:
double atof ( const char * str );
作用:将字符串转为double型;
3,itoa
原型:
char * itoa ( int value, char * str, int base );
作用:int型转为字符串型;
(其中2<=base<=36,base表示进制,比如base=10,表示10进制,base=8表示8进制)
4,itow
原型:
wchar_t * _itow( int value, wchar_t *str, int radix ); //2<=radix<=36
作用:int型转为宽字符串型;
以上4个函数可以解决int与字符串之间的相互转换,字符串转换为浮点型,但是浮点型转为字符串该如何解决呢?
方法一:利用
string DoubleToString(double Input)
{
stringstream Oss;
Oss<
方法二:
用函数
char* ecvt(double value, int ndigit, int *decpt, int *sign);
#include
#include
#include
int main(void)
{
char *string;
double value;
int dec, sign;
int ndig = 10;
value = 9.876;
string = ecvt(value, ndig, &dec, &sign);
printf("string = %s dec = %d sign = %d\n", string, dec, sign);
value = -123.45;
ndig= 15;
string = ecvt(value,ndig,&dec,&sign);
printf("string = %s dec = %d sign = %d\n",
string, dec, sign);
value = 0.6789e5;
ndig = 5;
string = ecvt(value,ndig,&dec,&sign);
printf("string = %s dec = %d sign = %d\n", string, dec, sign);
return 0;
}
#include
#include
int main()
{
char str[25];
double num;
int sig=5;
num=9.876;
gcvt(num,sig,str);
printf( "string=%s \n",str);
num=-123.4567;
gcvt(num,sig,str);
printf( "string=%s \n",str);
num=0.678e5;
gcvt(num,sig,str);
printf( "string=%s \n",str);
return(0);
}