Code:
char tmp[12]=dfdfsdfsd; double longt; longt=(double)tmp;
Code:
errorC2440 typecast' : cannot convert from 'char[12]' to 'double'
|
Ambitious contributor
|
|
| 17Mar2010,12:00 | #1 |
|
How can i convert char array to double ,i tried to typecast it but it gave error.
Code:
char tmp[12]=dfdfsdfsd; double longt; longt=(double)tmp; Code:
errorC2440 typecast' : cannot convert from 'char[12]' to 'double' |
|
Go4Expert Member
|
|
| 18Mar2010,10:24 | #2 |
|
You can not convert the full string to a double .Because when you convert you need just a single value .
Consider the code, Code:
#include <stdio.h>
main()
{
char c='a';
double longt;
longt=(double)c;
printf("%f\n",longt);
}
|
|
Mentor
|
![]() |
| 18Mar2010,13:59 | #3 |
|
If you want to do a bitwise conversion (which is what you get when you cast) then you need to use either a union or pointers. But don't expect the results to make much sense, because the internal representation of doubles is not ASCII text. If you want the conversion to result in a.x and p containing 3.1415926, then you have to use atof().
Code:
union {
char str[12];
double x;
} a;
strcpy(a.str, "3.1415926");
printf("%e\n",a.x);
char str1[12];
strcpy(str1,"3.1415926");
double *p=(double *)str1; //(1)
printf("%e\n",*p);
char str2[12];
strcpy(str2,"3.1415926");
printf("%e\n",atof(str2));
|