Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод числа с плавающей точкой 
:(
    Опции темы
Nosaer
  Дата 29.4.2016, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 25.8.2010

Репутация: нет
Всего: нет



Доброго всем времени суток. 
Пытаюсь вывести число с плавающей запятой на LCD.

Код

long int Eb = 0x5959;
char st_Ebf[4] = "";
float Eb_float = 0;

Eb_float = (float)Eb / 100;                                           // Здесь 228 делим на 100
sprintf(st_Ebf, "%01.2f", Eb_float );                            // Пытаюсь преобразовать в строку



По моей задумке в st_Ebf у меня в конечном итоге должны быть 2,28
На деле же, все что угодно либо вообще ничего. smile 
Подскажите пожалуйста, что я делаю не так.
PM MAIL   Вверх
rudolfninja
Дата 29.4.2016, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 341
Регистрация: 19.2.2013
Где: г. Минск

Репутация: 1
Всего: 6



0x5959 == 22873 (10)
22873 / 100 = 228,73
Поэтому, 2.28 у вас никак не получится.
Дальше у вас все верно, единственное, на что стоит обратить внимание, так это на то, что 4 байтов будет мало.
PM MAIL Skype   Вверх
feodorv
Дата 29.4.2016, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(rudolfninja @  29.4.2016,  10:50 Найти цитируемый пост)
Поэтому, 2.28 у вас никак не получится.

Наверное, там ещё раз на сотню поделить нужно)))
Код
sprintf(st_Ebf, "%01.2f", Eb_float/100.);



--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
baldman88
Дата 29.4.2016, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 18.1.2009

Репутация: 1
Всего: 7



Для GCC (за другие компиляторы не знаю) на некоторых платформах, чтобы sprintf печатоло числа с плавающей точкой, а не белиберду всякую, в опции компилятора нужно добавить такое:
-u,vfprintf -lprintf_flt
Может проблема в этом?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0913 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.