Zamiana kropki na przecinek bash

Zamiana kropki na przecinek bash
GO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 92
0

Witam.
Mam do napisania prosty program, którego problem tak naprawdę sprowadza się do podzielenia danej liczby przez dwa i zaokrągleniu wyniku w dół.
Problem polega na tym, że dane do testów podane są w formie liczby z kropką

Kopiuj
test3 = run_shell args: ['12.3']
test4 = run_shell args: ['0.82']
test5 = run_shell args: ['11.8']
test6 = run_shell args: ['1787']
test7 = run_shell args: ['0']

Mój kod poniżej

Kopiuj
#!/bin/bash
time=$1
echo $(($time/2))

Dla powyższych danych testowych serwer wyrzuca mi błędy np
bash: line 2: 1.4/2: syntax error: invalid arithmetic operator (error token is ".4/2")
bash: line 2: 12.3/2: syntax error: invalid arithmetic operator (error token is ".3/2")
bash: line 2: 0.82/2: syntax error: invalid arithmetic operator (error token is ".82/2")

Nie wiem jak to obejść.

Silv
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
1

Zobacz tu -> https://www.gnu.org/software/bash/manual/bash.html#Shell-Arithmetic

Shell Arithmetic
(…)
Evaluation is done in fixed-width integers (…).

Ergo, z tego, jak ja to rozumiem (i jak jest w kilku miejscach w sieci wypunktowane), Bash nie wspiera arytmetyki liczb zmiennoprzecinkowych.


UPDATE: Moim zdaniem użyj jakiegoś zewnętrznego programu. Na przykład bc lub dc. Tu pewne wskazówki: https://stackoverflow.com/questions/8654051/how-to-compare-two-floating-point-numbers-in-bash

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.