Как извлечь цифры после десятичной точки в float и сохранить в char Array - PullRequest
0 голосов
/ 28 января 2019

Я упоминал ниже вопрос, но мне нужно извлечь цифры после десятичной дроби и сохранить в char *array

1. Как хранить float в массиве float []

2. Извлечение цифр в поплавке в Python

Пример:

 float = 1.24456

Моя длина char *array равна 2

Ожидаемый результат:

array[0] = 2;
array[1] = 4;
array[2] = 4;

Мне нужно реализовать это в C динамически.

Ответы [ 2 ]

0 голосов
/ 28 января 2019

Немного более математический подход, но, возможно, менее гибкий:

0 голосов
/ 28 января 2019

Вы можете выделить дробную часть float, используя функцию modff в <math.h>, которая возвращает дробную часть в качестве возвращаемого значения функции, а целую часть в качестве аргумента по ссылке:

float f = 3.141592f;
float numpart, fracpart;
fracpart = modff(f, &numpart);

Как только вы это сделаете, вы можете создать строку с помощью обычной функции построения строки:

char buf[100];
snprintf(buf, 100, "%f", fracpart);

Другой вариант - преобразование всего float в строку, изатем используя strchr(float_str, '.') для выделения десятичной части.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...