Bash:
Zaokrąglanie liczb

Jak to zrobić:

Oto krótki przewodnik po zaokrąglaniu w Bashu:

# Zaokrąglenie w dół za pomocą 'floor' z bc
echo "scale=0; 3.49/1" | bc

# Zaokrąglenie w górę za pomocą 'ceiling' z bc
echo "scale=0; 3.01/1" | bc -l

# Zaokrąglenie do najbliższej całkowitej za pomocą printf
printf "%.0f\n" 3.49

# Sposób na zaokrąglenie do najbliższej całkowitej za pomocą bc
echo "(3.49+0.5)/1" | bc

Przykłady wyników — prosto z terminala:

3  # Zaokrąglone w dół (floor)
4  # Zaokrąglone w górę (ceiling)
3  # Zaokrąglone do najbliższej (z printf)
3  # Zaokrąglone do najbliższej (z bc)

Pogłębiona analiza

Kiedyś nie było bc ani printf w skryptach Bash, aby wykonywać matematyczne magiczne działania. Staroświeccy musieli polegać na zewnętrznych narzędziach lub sprytnych obejściach. Teraz bc pozwala ci wykonywać precyzyjne obliczenia matematyczne. Pamiętaj, że bc domyślnie nie zaokrągla — wykonuje “floor”. Część dotycząca “scale” ustawia działanie na punkcie dziesiętnym.

Alternatywy? Możesz użyć awk do zaokrąglania bez przełączania się na bc lub zmagać się z perl dla bardziej wymagających potrzeb matematycznych. Dla masochistów, przejdź na czysty Bash, powiedzmy, z iteracyjną manipulacją ciągów – ale po co?

Jeśli chodzi o szczegóły, bc nie tylko zaokrągla, wykonuje mnóstwo matematycznych zadań — skaluje, liczy sinus, pierwiastkuje, masz na myśli. Z printf, chodzi bardziej o formatowanie tekstu, ale hej, zaokrągla liczby, więc nie narzekamy.

Zobacz także

Dla tych, którzy chcą więcej: