0

Hi I have a program that does not work right as I aspect:

v = tempC;
h = tempC * 10;
h = h % 10;
memset(stempCA, 0, sizeof(stempCA));
sprintf(stempCA, "%+.2d.%d", v, h);

it works fine on positive temperature "+11.22" but not for negative values : "-02.-1"

where is my mistake? thanx

1
  • > where is my mistake? test the temperature first to see if it is negative or positive. your code works for positive temperatures only.
    – dannyf
    Commented Jan 22, 2017 at 16:23

1 Answer 1

1

I think, that -1%10=-1, not 9 as you would like. I use

if (tempC<0) {print'-';tempC=-tempC;};
print tempC as usual for positive numbers
2
  • no , I put it in a Buffer for LCD display, I don't use print : sprintf(Buffer2, "U:%s A:%s", stempCU, stempCA); Commented Jan 22, 2017 at 16:16
  • Got i myself: sprintf(stempCA, "%+.2d.%d", v, abs(h)); Commented Jan 22, 2017 at 16:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.