Arduino:
Zaokrąglanie liczb
Jak to zrobić:
W Arduino możesz zaokrąglać liczby używając wbudowanych funkcji. Kluczowe są round
, ceil
i floor
. Oto krótka demonstracja:
void setup() {
Serial.begin(9600);
float myNumber = 123.4567;
// Zaokrąglij do najbliższej liczby całkowitej
Serial.println(round(myNumber)); // Wyświetla: 123
// Zawsze zaokrągla w górę
Serial.println(ceil(myNumber)); // Wyświetla: 124
// Zawsze zaokrągla w dół
Serial.println(floor(myNumber)); // Wyświetla: 123
}
void loop() {
// Nic do pętlowania.
}
Dogłębna analiza:
Algorytmy zaokrąglania mają długą historię; były stosowane na długo przed cyfrowymi komputerami. W obliczeniach analogowych zaokrąglenie było procesem fizycznym. W obliczeniach cyfrowych jest matematyczne.
Zaokrąglenie jest potrzebne, gdy konwertujemy z typu o większej precyzji (jak float
lub double
) na typ o mniejszej precyzji (jak int
). Ale sposób zaokrąglania może się różnić:
round()
: Standardowe zaokrąglanie. Jeśli ułamek wynosi 0,5 lub więcej, zaokrągla w górę; w przeciwnym razie w dół.ceil()
: Krótko mówiąc, “sufit”, zawsze zaokrągla w górę do najbliższej liczby całkowitej, nawet jeśli jest bliżej niższej liczby.floor()
: Przeciwieństwo sufitu; zawsze zaokrągla w dół.
Wybór między tymi funkcjami zależy od tego, do czego potrzebna jest zaokrąglona wartość. Pomiary mogą wymagać standardowego zaokrąglenia, pieniądze często korzystają z floor
, podczas gdy systemy inwentaryzacyjne mogą używać ceil
, aby zapewnić, że wszystko jest uwzględnione.
Implementacja tych funkcji przez Arduino jest prosta; nie obsługują dodatkowych przypadków, takich jak zaokrąglanie do określonych miejsc dziesiętnych. W takim przypadku w grę wchodzi stworzenie własnej funkcji lub głębsza matematyka – myśl o mnożeniu, aby przesunąć miejsce dziesiętne, zaokrąglić, a następnie podzielić z powrotem.
Błędy zaokrąglenia mogą się kumulować, znacząco wpływając na długie obliczenia lub procesy iteracyjne. Programiści muszą być ostrożni, przeprowadzając liczne operacje na zaokrąglonych wartościach.
Zobacz również:
- Dogłębny przegląd pułapek i strategii zaokrąglania: Przewodnik po liczbach zmiennoprzecinkowych
- Dla zaawansowanych technik, w tym własnych funkcji zaokrąglania i obsługi błędów zaokrąglenia, warto sprawdzić źródła akademickie lub szczegółowe przewodniki programistyczne.