Am besten mal einen Blick ins Handbuch werfen: https://www.gnu.org/software/bash/manual/bash.html#Shell-Arithmetic ☺
Durch das rechnen mit festen Integer-Größen und den Verzicht auf Overflow-Checks gibt es noch andere ungewollte Effekte, z.B.:
$ echo $(( 2 ** 63 ))
-9223372036854775808
$ echo $(( 2 ** 64 ))
0
bueffel110 schrieb:
sollte aber Ausgabe: 16,666666 ausgeben.
Eigentlich müsstest du passend zur gewollten Zahl der gültigen Stellen aufrunden, wenn du nicht klar machst, dass es eine Periode einer rationalen Zahl ist, also sollte das Ergebnis entweder 16.6̅6̅6̅6̅6̅6̅ oder gerundet 1: 16.666667 sein.
Mit Python3 tut man sich da z.B. deutlich leichter als mit der Shell (und man kann es über den REPL auch interaktiv nutzen, wenn man will):
| #!/usr/bin/env python3
seconds = 1000
teile = seconds / 60
print("1: {:.6f}".format(teile))
|
bzw. im REPL:
| >>> seconds = 1000
>>> teile = seconds / 60
>>> print("1: {:06f}".format(teile))
1: 16.666667
|