Возможный дубликат
Функция должна возвращать printf
значение float
типа char str*
Входы:
char *string = "%f";
float k = 1.0005325678910
Функция:
Моя функция принимает входную строку %f
и значение с плавающей запятой 1.0005325678910
в качестве входных данных, сохраняющих значение printf
в char *answer
. Здесь IЯ не могу выделить память для char *answer
int length(char* string){
int i = 0;
while (string[i] != '\0')
i++;
return i;
}
char *res(char *string, float k){
int len = length(string); //len is a function which return length of the string
char *answer = (char*)malloc(sizeof(char)*len);
sprintf(answer,format, n);
//printf("%05d", 50);
//printf("%s", sqlAnswers);
return answer;
}
Ожидаемый вывод:
char *output = 1.000532;
Ошибка: Выделение памяти для char *answer
Вывод: 1.000533
Мой код не должен округляться до последней цифры.
Редактировать: Пример: Если мой float k = 6.143211
, то Ожидается Выход следуетбыть 6.14
, но функция returns 6.15
, которая округляет последнюю цифру.