Friday, May 04, 2007

Aritmetika untuk nilai pecahan pada shell script

Dengan menggunakan bash script kita bisa melakukan operasi aritetik dengan menggunakan $(()), misalnya $(( 1 / 3)) yaitu pembagian 1 dengan 3. Tapi yang dihasilkan adalah 0 kenapa karena hasil dari perintah tersebut adalah integer. Kita tidak bisa menggunakan ekspresi seperti ini $(( 1.0 / 3.0 )).

Menggunakan perintah exp kita juga akan mendapati hal yang sama. Cobalah perintah berikut

exp 1 / 3

hasilnya yang akan didapat adalah 0.

Sepertinya tidak ada cara dalam bash scripting untuk melakukan operasi aretmetik yang melibatkan nilai pecahan (floating point number atau rational number). Solusinya adalah menggunakan perintah bc dengan menspesifikasikan nilai skala (scale) yaitu jumlah bilangan pecahan yang akan muncul. Contoh berikut akan menghasilkan nilai 1.33

echo "scale=2;4/3" | bc


jika scale kita ganti nilainya menjadi 5, perintah diatas akan menghasilkan 1.33333

No comments:

Followers