Omlouvám se, že reaguji tak pozdě. Každopádně děkuji všem za rady.
Nakonec jsem to vyřešil takovým způsobem, který asi není moc efektivní, ale zdá se, že funguje
Kód: Vybrať všetko
// převod celého čísla z mV na V s desetinou čárkou a výpisem na display
char text[32] = {0,};
long int jednotky;
long int desetiny;
long int setiny;
int napeti_v_mV;
napeti_v_mV = 96; //hodnota napětí v mV
if (napeti_v_mV <= 94)
{
jednotky = 0;
desetiny = 0;
setiny = (napeti_v_mV + 5)/10;
sprintf(text,"U = %lu,%lu%luV",jednotky,desetiny,setiny);
}
else
{
jednotky = napeti_v_mV /1000;
napeti_v_mV = ((napeti_v_mV+5) - jednotky * 1000)/10;
desetiny= napeti_v_mV;
if (desetiny == 0) {sprintf(text,"U = %lu,0%luV",jednotky,desetiny);}
else if (desetiny == 1) {sprintf(text,"U = %lu,0%luV",jednotky,desetiny);}
else if (desetiny == 2) {sprintf(text,"U = %lu,0%luV",jednotky,desetiny);}
else if (desetiny == 3) {sprintf(text,"U = %lu,0%luV",jednotky,desetiny);}
else if (desetiny == 4) {sprintf(text,"U = %lu,0%luV",jednotky,desetiny);}
else if (desetiny == 5) {sprintf(text,"U = %lu,0%luV",jednotky,desetiny);}
else if (desetiny == 6) {sprintf(text,"U = %lu,0%luV",jednotky,desetiny);}
else if (desetiny == 7) {sprintf(text,"U = %lu,0%luV",jednotky,desetiny);}
else if (desetiny == 8) {sprintf(text,"U = %lu,0%luV",jednotky,desetiny);}
else if (desetiny == 9) {sprintf(text,"U = %lu,0%luV",jednotky,desetiny);}
else if (desetiny == 100)
{
jednotky += 1;
desetiny = 00;
sprintf(text,"U = %lu,0%luV",jednotky,desetiny);
}
else
{
sprintf(text,"U = %lu,%luV",jednotky,desetiny);
}
}