Разложение на 2 целых числа не вариант т.к. если ввести 23.005 в одну переменную пойдет 23, а в другую то чушь. Или как представить мелкое число, например 0.002? У Вас все числа должны быть не больше 3 десятичных знаков после запятой?
Напишите свою функцию разбора строки в число, которая будет ...
Найдено 12 результатов
- Чт янв 06, 2011 13:03:56
- Форум: Микроконтроллеры и ПЛИС
- Тема: Помогите реализовать запись числа с точкой
- Ответы: 39
- Просмотры: 4808
- Ср янв 05, 2011 18:15:44
- Форум: Микроконтроллеры и ПЛИС
- Тема: Помогите реализовать запись числа с точкой
- Ответы: 39
- Просмотры: 4808
Re: Помогите реализовать запись числа с точкой
И всетаки вы правы. После экспериментов с разными числами, ошибка реально есть. Уже даже не знаю как выйти из ситуации. Разложение на 2 целых числа не вариант т.к. если ввести 23.005 в одну переменную пойдет 23, а в другую то чушь. Или как представить мелкое число, например 0.002?
- Ср янв 05, 2011 15:59:18
- Форум: Микроконтроллеры и ПЛИС
- Тема: Помогите реализовать запись числа с точкой
- Ответы: 39
- Просмотры: 4808
Re: Помогите реализовать запись числа с точкой
С выводом я уже разобрался. Волновала только проблема что в переменной хранится не правильное число. Но эксперимент показал что функция sprintf не корректно отрабатывает и приходится округлять
- Ср янв 05, 2011 15:27:39
- Форум: Микроконтроллеры и ПЛИС
- Тема: Помогите реализовать запись числа с точкой
- Ответы: 39
- Просмотры: 4808
Re: Помогите реализовать запись числа с точкой
Безрезультатно. На экране всеравно 12,074999. Если в sprintf(s,"%.3f",sdf); на экране правильно, но в переменной же всеравно нет
Это похоже функция sprintf выдает такой результат, а переменная sdf равна 12.075
Как не парадоксально, но вот что я сделал
float sdf=0.0;
unsigned char *add = "12.075 ...
Это похоже функция sprintf выдает такой результат, а переменная sdf равна 12.075
Как не парадоксально, но вот что я сделал
float sdf=0.0;
unsigned char *add = "12.075 ...
- Ср янв 05, 2011 12:58:58
- Форум: Микроконтроллеры и ПЛИС
- Тема: Помогите реализовать запись числа с точкой
- Ответы: 39
- Просмотры: 4808
Re: Помогите реализовать запись числа с точкой
Сейчас проведу эксперимент попробую сравнить sdf c числом 12.075.
Вот тут народ тоже пишет про такие проблемы
http://www.avrfreaks.net/index.php?name ... 49&start=0
Вот тут народ тоже пишет про такие проблемы
http://www.avrfreaks.net/index.php?name ... 49&start=0
- Ср янв 05, 2011 12:50:23
- Форум: Микроконтроллеры и ПЛИС
- Тема: Помогите реализовать запись числа с точкой
- Ответы: 39
- Просмотры: 4808
Re: Помогите реализовать запись числа с точкой
Ставил .. не помогает. Я уже неделю борюсь с этой проблемой 
- Ср янв 05, 2011 12:20:46
- Форум: Микроконтроллеры и ПЛИС
- Тема: Помогите реализовать запись числа с точкой
- Ответы: 39
- Просмотры: 4808
Re: Помогите реализовать запись числа с точкой
Безрезультатно. На экране всеравно 12,074999. Если в sprintf(s,"%.3f",sdf); на экране правильно, но в переменной же всеравно нет 
- Ср янв 05, 2011 11:09:47
- Форум: Микроконтроллеры и ПЛИС
- Тема: Помогите реализовать запись числа с точкой
- Ответы: 39
- Просмотры: 4808
Re: Помогите реализовать запись числа с точкой
Спасибо. Заработало. Единственный момент, что в переменной sdf по прежнему остается неточное значение, а мне с ней нужно будет работать. Как там можно поправить?
- Ср янв 05, 2011 10:28:14
- Форум: Микроконтроллеры и ПЛИС
- Тема: Помогите реализовать запись числа с точкой
- Ответы: 39
- Просмотры: 4808
Re: Помогите реализовать запись числа с точкой
Сделал по совету и столкнулся с проблемой
unsigned char *add = "12.075";
char s[20];
sdf=atof(add);
sprintf(s,"%f",sdf);
lcd_puts(s);
в итоге на экране имеем вместо 12.075 12.074999
unsigned char *add = "12.075";
char s[20];
sdf=atof(add);
sprintf(s,"%f",sdf);
lcd_puts(s);
в итоге на экране имеем вместо 12.075 12.074999

- Вт янв 04, 2011 18:15:18
- Форум: Микроконтроллеры и ПЛИС
- Тема: Помогите реализовать запись числа с точкой
- Ответы: 39
- Просмотры: 4808
Re: Помогите реализовать запись числа с точкой
Спасибо огромное. Попробую. О результате отпишусь 
- Вт янв 04, 2011 16:27:52
- Форум: Микроконтроллеры и ПЛИС
- Тема: Помогите реализовать запись числа с точкой
- Ответы: 39
- Просмотры: 4808
Помогите реализовать запись числа с точкой
С Ик пульта вводится число с плавающей точкой. Т.е. для получения числа, например, 0.005 вводится сначала 0, затем точка, затем еще 2 нуля и 5. Посоветуйте как грамотно организовать запись данных в переменную Float
Пишу на СИ CVAVR
Пишу на СИ CVAVR
ATmega16
Приветствую всех обиателей форума.
Наконец-то разжился ATmega16,:)) но столкнулся с проблемой как её запрограммировать . До этого времени работал с AT90Sxxxx, шил прорамматором 5 проводков и прогой FBPRG, но она не знает ATmega. Пробовал этимиж 5 проводков шить через CodeVision не получается ...
Наконец-то разжился ATmega16,:)) но столкнулся с проблемой как её запрограммировать . До этого времени работал с AT90Sxxxx, шил прорамматором 5 проводков и прогой FBPRG, но она не знает ATmega. Пробовал этимиж 5 проводков шить через CodeVision не получается ...