Saída errada na comparação de carros alegóricos

1

Estou tentando comparar dois carros alegóricos no bash e algo está errado. Aqui está o exemplo de código com base na solução aqui

num1=0.502E-01
num2=0.01
echo $num1'>'$num2 | bc -l
echo $num2'>'$num1 | bc -l

Espero a saída de 1 para o primeiro eco e 0 para o segundo eco, mas em vez disso, recebo 0 para o primeiro e 1 para o segundo. O que há de errado com essa entrada? Como obter uma comparação consistente desses flutuadores?

    
por WanderingMind 21.05.2016 / 22:07

1 resposta

2

awk pode certamente fazer comparações de flutuação se chamado a partir do seu script de shell.

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
    
por 21.05.2016 / 22:28