[an error occurred while processing this directive]
Ответ: да мне и тут не стыдно, давно писалось это, но работает. Печатаем знамо дело в буфер (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено DASM 26 сентября 2005 г. 10:24
В ответ на: буду благодарен... отправлено <font color=gray>Ю</font> 26 сентября 2005 г. 10:22


void SprintEng(char *dest, float val)
{
char exp = 0;
char d;
float k;
signed char dexp;
char bStartPrint = 0;
char bPoint = 0;
char printed = 0;
if (val == 0) {
*dest++ = '0';
*dest++ = 0;
return;
}

if (val < 0) {
*dest++ = '-';
val = -val;
}
else {
*dest++ = ' ';
}

if (val < 1) {
dexp = -3;
k = 1000;
}
else {
dexp = 3;
k = 0.001;
}

while ((val < 1) || (val > 1000)) {
val *= k;
exp += dexp;
}
k = 100;

while (printed < 4) {
d = (char) (val / k);
val -= d * k;
if (bStartPrint) {
// уже печатаем
*dest++ = d + '0';
printed++;
}
else if (d != 0) {
bStartPrint = 1;
*dest++ = d + '0';
printed++;
}
if ((val < 1) && !bPoint && (printed != 4)) {
bPoint = 1;
*dest++ = '.';
}

k /= 10;
}
if (exp > 0) *dest++ = '+'; else {*dest++ = '-'; exp =- exp;}
*dest++ = exp + '0';
*dest++ = 0;
}



Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru