Спасибо за совет, но Вы наверно не программист для МК а программист для компьютеров и приложений

Если я умножаю 319 на 0.707 то получаю 225 на индикаторе без всяких преобразований. Но если умножаю х на 0.707 то получаю большое число(примерно 27000), как будто переполнение. Х - это измеренное значение АЦП.
у - промежуточная переменная
х - значение измеренное с АЦП(переменный резистор стоит) и сохраненное в эту переменную
формула:
у=х*0.707;
Display(y);
ниже процедура для вывода чисел. Может из-за нее чтото???
void Display(unsigned int Number) - процедура для представления чисел на 7-индикаторе
{
unsigned char Num1, Num2, Num3,Num4, Num5;
Num1=0;
Num2=0;
Num3=0;
Num4=0;
Num5=0;
while (Number ›= 10000) //10000
{
Number -= 10000;
Num1++;
}
while (Number ›= 1000) //1000
{
Number -= 1000;
Num2++;
}
while (Number ›= 100) //100
{
Number -= 100;
Num3++;
}
while (Number ›= 10) //10
{
Number -= 10;
Num4++;
}
Num5 = Number; //îñòàòîê
Disp1 = Dig[Num1];
Disp2 = Dig[Num2];
Disp3 = Dig[Num3];
Disp4 = Dig[Num4];
Disp5 = Dig[Num5];
};
Странно... столько программистов тут которые много раз перемножали числа с точкой, но никто не может дать правильного совета
вот две недели парился с индикацией, а добрый человек подсказал про еепром и всё срослось

)) ОООчень ему благодарен.