#include #include int double_to_string(double number, char* buffer, int size, int precision) { int i = 0; if(precision > size) return 1; snprintf(buffer, size, "%lf", number); while(buffer[i]) { if(buffer[i] == '.') { if((precision == 0) || (i == size - 2)) buffer[i] = '\0'; else buffer[i + precision + 1] = '\0'; break; } i++; } printf("%s\n", buffer); return 0; } int main() { char *buff = NULL; buff = (char*)malloc(15); double_to_string(-0.322837, buff, 14, 6); free(buff); return 0; }