Skocz do zawartości

Komora termiczna - kontrola procesu fermentacji


Pomocna odpowiedź

(edytowany)

Chcę uzyskać liczbę z dokładnością do jednego miejsca po przecinku. Jeżeli zrobię round(SetTemp - AverageTemp) to uzyskam liczbę całkowitą, dlatego jest round((SetTemp - AverageTemp)*10). Jeżeli zrobił bym round(SetTemp - AverageTemp * 10) to uzyskła bym inny wynik, a bez sensu jest zapisywać SetTemp - AverageTemp do kolejnej zmiennej jeżeli wykorzystuje ją tylko w tym miejscu.

Dzięki temu zaokrąglam liczbę nie np. 3,14, a 31,4. Po zaokrągleniu otrzymuje odpowiednio 3 oraz 31. Jeżeli teraz podzielę drugą liczbę przez 10 uzyskam liczbę 3,1 czyli zaokrąglenie do jednego miejsca po przecinku tak jak tego potrzebuję.

Jedyny zbędny nawias to ten na przed round i przed ;.

Edytowano przez szczawiosław
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

No to spróbuj. Jeśli z round(3.14) * 10 wyjdzie Ci 31 to będziesz mógł się ze mnie śmiać na wszystkich forach, a ja wlazę pod stół i będę szczekać.

 

 

Edytowano przez ethanak
Link do komentarza
Share on other sites

9 minut temu, szczawiosław napisał:

Jedyny zbędny nawias to ten na przed round i przed ;. 

Dobra, nie zrozumieliśmy się. Nawiasy zostały po jakiejś funkcji i zapomniałem usunąć, a napisałeś tak że zrozumiałem że te środkowe są zbędne w których znajduje się odejmowanie.

Link do komentarza
Share on other sites

Znalazłem jeszcze błąd w swoim kodzie. Funkcji abs() automatycznie zmienia float na int. Chciałem mieć amplitudę 1°C, a przez to miałem 2°C. na szczęście jest funkcja fabs() 🙂 Więc obeszło się bez większych kombinacji.

Link do komentarza
Share on other sites

W  kwestii formalnej: funkcja abs nic nie zmienia, po prostu jej argument jest typu int i kompilator generuje kod zmiany typu (rzutowania) przed przekazaniem wartości do funkcji.

Niby mała różnica... ale jednak.

  • Lubię! 2
Link do komentarza
Share on other sites

Dość powszechny i nie ma się czego wstydzić. Kiedyś w Fortranie miałem funkcję abs i iabs (jak się pewnie domyślasz działały dokładnie odwrotnie)...

Czasem lepiej korzystać z makra.

 

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.