pesta
Seperti dicatat oleh orang lain, bash
tidak mendukung aritmatika titik mengambang, meskipun Anda bisa memalsukannya dengan beberapa tipuan desimal tetap, misalnya dengan dua desimal:
echo $(( 100 * 1 / 3 )) | sed 's/..$/.&/'
Keluaran:
.33
Lihat jawaban Nilfred untuk pendekatan yang serupa tetapi lebih ringkas.
Alternatif
Selain yang disebutkan bc
dan awk
alternatif ada juga yang berikut:
clisp
clisp -x '(/ 1.0 3)'
dengan output dibersihkan:
clisp --quiet -x '(/ 1.0 3)'
atau melalui stdin:
echo '(/ 1.0 3)' | clisp --quiet | tail -n1
dc
echo 2k 1 3 /p | dc
kalkulator genius cli
echo 1/3.0 | genius
ghostscript
echo 1 3 div = | gs -dNODISPLAY -dQUIET | sed -n '1s/.*>//p'
gnuplot
echo 'pr 1/3.' | gnuplot
jq
echo 1/3 | jq -nf /dev/stdin
Atau:
jq -n 1/3
ksh
echo 'print $(( 1/3. ))' | ksh
lua
lua -e 'print(1/3)'
atau melalui stdin:
echo 'print(1/3)' | lua
maksimal
echo '1/3,numer;' | maxima
dengan output dibersihkan:
echo '1/3,numer;' | maxima --quiet | sed -En '2s/[^ ]+ [^ ]+ +//p'
simpul
echo 1/3 | node -p
oktaf
echo 1/3 | octave
perl
echo print 1/3 | perl
python2
echo print 1/3. | python2
python3
echo 'print(1/3)' | python3
R
echo 1/3 | R --no-save
dengan output dibersihkan:
echo 1/3 | R --vanilla --quiet | sed -n '2s/.* //p'
rubi
echo print 1/3.0 | ruby
wcalc
echo 1/3 | wcalc
Dengan output yang dibersihkan:
echo 1/3 | wcalc | tr -d ' ' | cut -d= -f2
zsh
echo 'print $(( 1/3. ))' | zsh
unit
units 1/3
Dengan output yang kompak:
units --co 1/3
Sumber lainnya
Stéphane Chazelas menjawab pertanyaan serupa di Unix.SX.