#include
#include
int main()
{
char s[100] =\"4.0800\" ;
printf(\"float value : %4.8f\\n\" ,(float) atoll(s));
return
Use atof() or strtof()* instead:
printf("float value : %4.8f\n" ,atof(s));
printf("float value : %4.8f\n" ,strtof(s, NULL));
http://www.cplusplus.com/reference/clibrary/cstdlib/atof/
http://www.cplusplus.com/reference/cstdlib/strtof/
atoll() is meant for integers.atof()/strtof() is for floats.The reason why you only get 4.00 with atoll() is because it stops parsing when it finds the first non-digit.
*Note that strtof() requires C99 or C++11.