Witam.
Proszę o pomoc z problemem: próbuję rozbić liczbę ujemną/dodatnią np. -14.32 na cyfry np.1 ; 4 ; 3 . Chodzi o budowę termometru (setne temperatury ucinamy)
Zrobiłem tak:
warunek jeśli temperatura mniejsza od zera to: mnożę ją przez sto i dzielę na 10 ; (-14.32*100)/10) =-143 ;pozbywam się przecinka i zaokrąglam do trzech cyfr.
pozbywam się minusa -143*(-1) =143
cała akcja odbywa się w void tmp() na końcu programu.
W pętli głównej inkrementuję zmienną temperatura i tak symuluję zmiany temperatury.
A tutaj wyniki z serial monitora:
START
-2.00
-20
20
-1.90
-19
19
-1.80
-18
18
-1.70
-16
16
-1.60
-15
15
-1.50
-14
14
A teraz mój problem:
-2.00
-20
20
-1.90
-19
19
-1.80
-18
18
do tego miejsca wszystko się zgadza ale w tym miejscu program przeskakuje o 1 i mamy-1.70
-16 //
-1.7 zostało zamienione ma -16 i dalej na 16 tego nie rozumiem16
-1.60
-15
15
-1.50
-14
14
Może ktoś podpowie gdzie robię błąd.
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
------------------------ [ Dodano po: 9 minutach ]Witam.
Chyba zamykamy temat problem wydaje się chwilowo rozwiązany.
Dokonałem niejawnego rzutowania (chyba tak to się nazywa) zmiennej float na int i to chyba był problem.
po zmianie tmp1 na float program działa jak trzeba.
Temat można zamknąć lub usunąć.
Pozdrawiam