alguem sabe como fazer a conta expr 10 / 6
dar 1,6 e não 1?
preciso das casas a pos a virgula pelomenos duas! posso usar outra coisa que nao o expr tbm!
Abraços
Versão Imprimível
alguem sabe como fazer a conta expr 10 / 6
dar 1,6 e não 1?
preciso das casas a pos a virgula pelomenos duas! posso usar outra coisa que nao o expr tbm!
Abraços
Código :
Devm ter visto que os comandos do [B]shell[/B] "let" e "[B]expr[/B]" apenas permitem operações do tipo inteiro. E para efectuar calculos numericos com floats ? Opcao 1 : Utilizar o programa bc : arbitary precision calculator language y=2.2 x=2.7 echo "$x/$y"|bc -l 1.22727272727272727272 Opção 2 : Utilzar o programa awk x=2.2 y=3.3 echo $x $y | awk '{print $1+$2}' Opção 3 : Escrever (em c) um comando proprio tipo mylet Utilização seria : mylet 2.2 2.4 + OU mylet 2.3 4.2 * O programa depois será qualquer coisa como ... #include .. main( int argc , char **argv ) { [B]float[/B] a,b; a= atof( argv[1] ); b= atof( argv[1] ); if ( 0==strcmp(argv[3],"+")) printf("%f\n",a+b); if ( 0==strcmp(argv[3],"/")) if (b!=0) printf("%f\n",a/b); else printf(NaN\n); } cc o mylet mylet.c mv mylet $HOME/bin - disponibilizar comando, copiando para um directorio do seu path
Ou ainda você pode fazer:
Código :
[FONT=Courier New] echo "scale=2;10/6" | bc[/FONT]
O "scale" controla quantas casas decimais você quer!