У меня есть мой ЖК-дисплей, работающий на моем TM4C123, и у меня есть печать.с фиксированной точкой десятичной печати выход
Я пытаюсь сделать вход из левой колонки выглядит как выход из правой колонки.
То, что я попытался было извлечь каждую цифру из целого числа, а затем распечатать каждую одну из них, а затем положить десятичную где-то там. Когда я извлекаю цифры, знак, похоже, придерживается цифры, и я просто не могу отформатировать его правильно.
outTestCaseType1 outTests1[13]={
{ 0, " = 0.000?\r" }, // 0/1000 = 0.000
{ 4, " = 0.004?\r" }, // 4/1000 = 0.004
{ -5, " = -0.005?\r" }, // -5/1000 = -0.005
{ 78, " = 0.078?\r" }, // 78/1000 = 0.078
{ -254, " = -0.254?\r" }, // -254/1000 = -0.254
{ 999, " = 0.999?\r" }, // 999/1000 = 0.999
{ -1000, " = -1.000?\r" }, // -1000/1000 = -1.000
{ 1234, " = 1.234?\r" }, // 1234/1000 = 1.234
{ -5678, " = -5.678?\r" }, // -5678/1000 = -5.678
{ -9999, " = -9.999?\r" }, // -9999/1000 = -9.999
{ 9999, " = 9.999?\r" }, // 9999/1000 = 9.999
{ 10000, " = *.***?\r" }, // error
{-10000, " = *.***?\r" } // error
};
Мой код выглядит следующим образом:
void ST7735_sDecOut3(int32_t n) {
int32_t msd,nsd, lsd;
int32_t value;
value=n;
if (value > 999)
{
value = 999;
}
msd = value/100;
value -= msd * 100;
nsd = value/10;
value -= nsd * 10;
lsd = value;
printf("%d%d%d", msd, nsd, lsd);
}
Выход следующим на ЖК-дисплее:
Я выбираю в это столько, сколько я могу и это так близко, как я до сих пор. Может быть, более простой способ, который я не вижу из-за моей неопытности, но я буду продолжать пытаться, потому что это все, что я могу сделать.
Любые подсказки или помощь будут оценены.