Вывод чисел с плавающей точкой на жк дисплей? Имеется две функции, одна выводит на экран целое число, другая одно число после точки. Вторая функция не работает, то есть выводит просто ноль, но если во вторую функцию передать аргумент без целого числа то все работает без проблем.void return_celoe(double data)
{
double ostatok, celoe,data1;
unsigned char otvet,mass[10],count=1, mass1;
ostatok=modf(data, &celoe);
otvet=celoe;
data1=celoe;
if(otvet==0)
lcd_dat(0x30);
while(otvet>0)
{
data1/=10.0;
otvet=data1;
ostatok=modf(data1, &celoe);
mass1=ostatok*10.0+0x30;
mass[count]=mass1;
count++;
}
while(count>1)
{
lcd_dat(mass[--count]);
}
}
void return_ostatok(double data)
{

double ostatok, celoe, data1=data;
int otvet, sto;
ostatok=modf(data1, &celoe);
otvet=ostatok*10.0;
lcd_dat(otvet+0x30);
}
int main(void)
{
lcd_init();
return_celoe(7990324.9); /*НА РАЗНИЦУ МЕЖДУ ЦЕЛЫМИ ЧИСЛАМИ НЕ ОБРАЩАЙТЕ ВНИМАНИЯ*/
lcd_dat('.');
return_ostatok(7999.9); /*ЗДЕСЬ ЕСЛИ НАПИСАТЬ НЕ 7990324.9 А 0.9 ТО ВСЕ РАБОТАЕТ, ТАКЖЕ ЕСЛИ ПЕРЕДАТЬ 7999.9 ТО НА ЭКРАН ВЫВОДИТСЯ 7999.8
А ЕСЛИ 799.9 ТО ТАК ЖЕ 799.9 ПОЧЕМУ ТАК? */

}
Как я думаю чем больше целое число тем больше остаток растягивается

21 Авг 2019 в 06:05
140 +1
0
Ответы
1

на 10 и в итоге может быть округлен в меньшую сторону. Возможно, это происходит из-за специфики представления чисел с плавающей точкой в памяти компьютера. Для более точного вывода чисел с плавающей точкой на жк дисплей, можно попробовать использовать другой подход или библиотеки для работы с числами с плавающей точкой.

20 Апр в 13:24
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 894 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир