Ich versuche, zwei Floats in Bash zu vergleichen, und etwas läuft schief. Hier ist das Codebeispiel basierend auf der LösungHier
num1=0.502E-01
num2=0.01
echo $num1'>'$num2 | bc -l
echo $num2'>'$num1 | bc -l
Ich erwarte die Ausgabe 1
für das erste Echo und 0
für das zweite Echo, aber stattdessen bekomme ich 0
für das erste und 1
für das zweite. Was ist falsch an dieser Eingabe? Wie kann man diese Floats konsistent vergleichen?
Antwort1
awk
können sicherlich Float-Vergleiche durchführen, wenn sie von Ihrem Shell-Skript aufgerufen werden.
num1=0.502E-01
num2=0.01
awk -v a="$num1" -v b="$num2" 'BEGIN{print(a>b)}'
1
awk -v a="$num1" -v b="$num2" 'BEGIN{print(b>a)}'
0