Tipe Bilangan Pecahan

Currency
Bilangan pecahan dengan 4 digit di belakang koma. Biasanya digunakan dalam aplikasi-aplikasi finansial dan akuntansi. Bila sebuah angka dengan nilai desimal lebih panjang dari 4 digit, maka otomatis akan dibulatkan ke atas atau ke bawah sesuai nilai desimal tersebut. Pembulatan dilakukan sampai hanya 4 digit yang tertinggal di belakang koma. Presisi nilai desimal ini sebesar 53 bit, namun sangat tergantung pada presisi desimal yang didukung prosesor.

var
curA, curB : Currency;
begin
  curA := 123.456749;   // desimal dibulatkan menjadi 123.4567
  curB := 123.456750;   // desimal dibulatkan menjadi 123.4568

Double
Double merupakan tipe pecahan dengan 15 digit presisi dengan rentang 2.23 x 10-308 sampai 1.79 x 10308
Tipe double menyeimbangkan presisi/kapasitas dan storage/performansi. Tipe ini merupakan tipe general purpose, paling presisi, juga paling cepat.

0.1234567890123456789 // akan dibulatkan ke 15 digit desimal: 0.123456789012346

Extended
Pecahan dengan rentang 3.37 x 10-4932 sampai 1.18 x 104932. Paling presisi, sekaligus paling lambat dan paling banyak menggunakan memori. Presisi sampai 19 desimal di belakang koma.

Real
Merupakan versi obsolete. Digantikan oleh Double.

Real48
Merupakan versi obsolete. Digantikan oleh Extended.

Single
Pecahan paling kecil dengan presisi paling rendah. Namun merupakan yang paling baik performansinya.

2 thoughts on “Tipe Bilangan Pecahan

  1. Untuk keperluan penampilan data ke GUI, bisa coba cara ini:

    procedure TForm2.Button1Click(Sender: TObject);
    var
      Nilai: Double;
    begin
      Nilai := 12345.564318871;
      Edit1.Text := FormatFloat('0.0000', Nilai); //-->memformat dengan empat digit desimal, hasil: string.
    end;
    

    Sedangkan untuk perhitungan, bisa gunakan cara sederhana:

    procedure TForm2.Button1Click(Sender: TObject);
    var
      Nilai: Double;
      Hasil: Double;
    begin
      Nilai := 12345.564318871;
      Hasil := Trunc(Nilai) + Trunc(Frac(Nilai)*10000)/10000;
      {
      Jumlah nol pada perhitungan di atas adalah 4 digit, sesuai jumlah pembulatan desimal.
      }
      Edit1.Text := FloatToStr(Hasil); 
      //-->Tidak perlu FormatFloat, kerana Hasil telah memiliki 4 digit desimal saja
    end;
    

    Tulisan ini mungkin bisa menjadi referensi:
    https://jokorb.wordpress.com/2010/04/18/format-angka-finansial/

    HTH🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s