Как я могу преобразовать a float
значение к char*
в C
язык?
char buffer[64];
int ret = snprintf(buffer, sizeof buffer, "%f", myFloat);
if (ret < 0) {
return EXIT_FAILURE;
}
if (ret >= sizeof buffer) {
/* Result was truncated - resize the buffer and retry.
}
Это будет хранить строковое представление myFloat
в myCharPointer
. Однако убедитесь, что веревка достаточно велика, чтобы удерживать ее.
snprintf
- лучший вариант, чем sprintf
, поскольку он гарантирует, что никогда не будет записывать больше размера буфера, указанного в аргументе 2.
char array[10];
snprintf(array, sizeof(array), "%f", 3.333333);
char* str=NULL;
int len = asprintf(&str, "%g", float_var);
if (len == -1)
fprintf(stderr, "Error converting float: %m\n");
else
printf("float is %s\n", str);
free(str);
char array[10];
sprintf(array, "%f", 3.123);
sprintf : (из MSDN)