"Ungültiger Arithmetischer Operator" zu tun Fließkomma-Mathematik in der bash
Hier ist mein script, es ist ziemlich selbsterklärend:
d1=0.003
d2=0.0008
d1d2=$((d1 + d2))
mean1=7
mean2=5
meandiff=$((mean1 - mean2))
echo $meandiff
echo $d1d2
Aber anstatt meinen beabsichtigten Ausgabe von:
0.0038
2
Ich bin immer der Fehler Invalid Arithmetic Operator, (error token is ".003")?
- BTW, wenn Sie den Wechsel von bash zu ksh93, floating-point wäre nativ verfügbar.
Du musst angemeldet sein, um einen Kommentar abzugeben.
bash
nicht unterstützt floating-point-Arithmetik. Sie müssen verwenden Sie ein externes Dienstprogramm wiebc
.In Fall, dass Sie nicht brauchen, floating-point-Präzision, können Sie ganz einfach ausziehen, den dezimalen Teil.
echo $var | cut -d "." -f 1 | cut -d "," -f 1
schneidet der ganzzahlige Teil des Wertes. Der Grund für die Verwendung schneiden Sie zweimal zu parse-integer-Teil im Falle eines regionalen Einstellung kann Punkte getrennten Dezimalzahlen und einige andere mit den Kommas.