Перевод double в char - C (СИ)

Узнай цену своей работы

Формулировка задачи:

        char buff[5];
    float volt = readADC()*0.02932; // Тут в итоге получится должно 1.46 или что-нибудь такое.
    sprintf(buff,"%f",volt); // этой строкой я его разлагаю на байты по идее.
    lcd_dat(buff[1]); //и тут побайтно вывожу на экран, но вместо чисел закорючки (
Выводит всякие закорючки, что не так делаю?

Решение задачи: «Перевод double в char»

textual
Листинг программы
    float volt = (readADC()*2.56*(28.16/2.56))/1023; //28.6 Коэффициент делителя
    dtostrf(volt,5, 3, buff);

Объяснение кода листинга программы

  1. В данном коде переменная volt представляет собой значение, полученное с помощью функции readADC(). Это значение представлено в формате float и требует дальнейшей обработки.
  2. Для корректного представления значения в формате char, необходимо выполнить ряд математических операций. В данном случае используется формула: (readADC()2.56(28.16/2.56))/1023.
  3. Значение 28.16 в данной формуле представляет собой коэффициент делителя.
  4. Результат вычислений сохраняется в переменной volt.
  5. Далее, функция dtostrf() используется для преобразования значения переменной volt из формата float в строковый формат.
  6. Параметры функции dtostrf() представлены в следующем порядке:
    • volt - значение, которое необходимо преобразовать.
    • 5 - количество знаков после запятой, которые необходимо сохранить в результате преобразования.
    • 3 - указатель на буфер, в который будет сохранено результат преобразования. В данном случае, буфером является переменная buff.
  7. Результатом выполнения данного кода будет строковое представление значения переменной volt с точностью до пятого знака после запятой.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5