Tipe Data Pecahan dan Formatting Output dalam Pascal

Dalam bahasa pascal, tipe data pecahan (desimal) disebut dengan tipe data real. Versi lain dari tipe data pecahan desimal yang lebih besar ukurannya dibandingkan dengan real adalah double dan extended. Dalam pascal, Tipe data pecahan desimal bagian bulat dan pecahannya dipisahkan dengan menggunakan tanda titik(.), dan bukan dipisahkan dengan menggunakan tanda koma(,).

Dalam bahasa pascal, operator pembagian untuk pecahan adalah tanda garis miring(/), sedangkan operator untuk bilangan bulat adalah "div". Untuk bilangan pembagian dengan operand berupa bilangan bulat, hasil dari pembagian akan ditentukan oleh operator dan tipe data yang digunakan.

Selain perbedaan karena operatornya, jika hasilnya adalah pecahan, angka yang ditampilkan akan ditentukan oleh formatnya. Kalau kalian tidak memberikan format pada hasilnya, hasilnya akan menampilkan notasi ilmiah dengan mantisa dan eksponen yang dipisahkan dengan huruf E. Untuk lebih jelasnya, perhatikan contoh berikut ini.

uses crt;
var hasil, pecahan1, pecahan2:real;
begin
    clrscr;
    pecahan1:=2;
    pecahan2:=3;
    hasil:=pecahan1/pecahan2;
    writeln(pecahan1, ' / ', pecahan2, ' = ', hasil);
    readln;
end. 
Kalau kalian sudah mengcompile dan menjalankan programnya, kalian akan mendapati tulisan yang mungkin sulit dipahami oleh kalian. Jika kalian ingin hasil keluaran yang lebih mudah dipahami, gunakan formating dengan menggunakan dua angka yang dipisahkan dengan tanda titik dua ( : ). Polanya adalah "angka:jumlah_angka_maksimal:jumlah_pecahan".

uses crt;
var hasil, pecahan1, pecahan2:real;
begin
    clrscr;
    pecahan1:=2;
    pecahan2:=3;
    hasil:=pecahan1/pecahan2;
    writeln(pecahan1:0:0, ' / ', pecahan2:0:0, ' = ', hasil:0:4);
    readln;
end.
Dari dua contoh di atas, kalian bisa melihat perbedaan dengan dan tanpa "pemformatan output". Supaya lebih jelas lagi, perhatikan contoh berikutnya dari saya.

uses crt;
var angka:real=2.56789;
begin
    clrscr;
    writeln('tanpa : ', angka);
    writeln('dengan : ', angka:0:4);
    readln;
end.

Kalian bisa melihat kalau angka 9 tidak ada karena bagian pecahannya hanya dibatasi dengan 4 digit sehingga yang tampak cuma "2.56789". Selanjutnya, coba ubah nol setelah tanda titik dua pertama. Seharusnya itu akan menambahkan spasi sesuai dengan "sisa jumlah digit yang diperlukan".

uses crt;
var angka:real=2.56789;
begin
    clrscr;
    writeln('Dengan batas 0 digit : ', angka:0:4);
    writeln('Dengan batas 10 digit : ', angka:10:4);
    readln;
end.