Arsip: Pembulatan bilangan desimal

 
user image
more 13 years ago

adit4it

To the point aja. aku lagi nge-build program yang mengharuskan harga dapat berubah secara dinamis berdasarkan tanggal. harga barang untuk bulan ini lebih mahal dibanding bulan depan. aku sudah dapat kan logikanya. cari selisih hari pembelian dan tanggal barang dikalikan dengan persentase harga. nah harga aku pake format real(supaya dapat dikali persentase). cuman untuk pembayaran tentunya harus bertipe integer. nah gimana cara pembulatan untuk bilangan real yang berkoma menjadi integer. Thanks regards...
user image
more 13 years ago

Manz

coba pake ROUND(<nilai>) :mrgreen: moga mbantu
user image
more 13 years ago

adit4it

aku pake kode... tapi sebagian....

hargapng : real;
hargapng := strtofloat(label59.Caption);
if dit.qpjt.IsEmpty  then
begin
dit.qpjt.close;
dit.qpjt.SQL.Clear;
dit.qpjt.SQL.Add('insert into penumpang');
dit.qpjt.sql.Add('values('''+kode+''','''+asal+''','''+tujuan+''','''+tanggal+''','''+notiket+''','+inttostr(jumlahtiket)+','''+nama+''','''+alamat+''','''+ktp+''','''+telepon+''','''+berangkat+''','+floattostr(round(hargapng))+')');
dit.qpjt.open;
dit.qpjt.close;
dit.qpjt.SQL.Clear;
dit.qpjt.SQL.Add('Commit');
dit.qpjt.Open;
End ;
Udah kucoba pake round tapi ga bisa... label59.caption aku tetap ada komanya. kira-kira salah dimana ya...
user image
more 13 years ago

Manz


hargapng := strtofloat(round(label59.Caption));   <--- cobain disini
user image
more 13 years ago

deLogic

ehm... mas manz.. konversinya gak kebalik tuh? mungkin maksudnya begini:

hargapng := round(strtofloat(label59.Caption)); 
user image
more 13 years ago

Manz

:lol: sorry om deLogic .... huehehehehehehe :mrgreen: kebalik ... jadi malu ... huehehehehehe :lol:
user image
more 13 years ago

adit4it

thanks2... berarti round hanya untuk membulatkan angka desimal. maksud aku berarti round ga bisa membulatkan angka lebih spesifik untuk harga. misal 12340,56. dibulatkan 12340. Seharusnya membulatkan 12300. atau 12340,98 dibulatkan menjadi 13000. Jadi untuk membulatkan harga kan ga bisa pake round?
user image
more 13 years ago

_lmz

@adit4it: thanks2... berarti round hanya untuk membulatkan angka desimal. maksud aku berarti round ga bisa membulatkan angka lebih spesifik untuk harga. misal 12340,56. dibulatkan 12340. Seharusnya membulatkan 12300. atau 12340,98 dibulatkan menjadi 13000. Jadi untuk membulatkan harga kan ga bisa pake round?
kok bisa 12340,56 jadi 12300 sedangkan 12340,98 jadi 13000? apabila mau dibulatkan ke (misal) Rp 50 terdekat kan tinggal: 1. Angkanya dijadikan integer dulu (misal integernya i) 2. dicek, i sudah kelipatan 50 tidak 3. Jika tidak, maka i := (i div 50) * 50 + 50 (atau mungkin i := i - (i mod 50) + 50 ) itu berarti selalu dibulatkan ke atas ke 50 yang terdekat
user image
more 13 years ago

mas_kofa

1. konversi real ke int i := trunc(r); 2. cek kelipatan & 3. proses pembulatan http://www.delphi-id.org/dpr/index.php?name=PNphpBB2&file=viewtopic&t=1679&highlight=
user image
more 13 years ago

bangfauzan

@adit4it: Udah kucoba pake round tapi ga bisa... label59.caption aku tetap ada komanya. kira-kira salah dimana ya...
Jelas, orang disitu tidak ada perintah untuk meng-assign nilai caption ke labei59, justru yang ada label59 sebagai source dari nilai hargapng. script
hargapng := strtofloat(label59.Caption);
itu kan membaca nilai dari caption label59, bukan memberikan nilai caption (menampilkan) label59 setelah pembulatan. kecuali ada script
label59.caption:=inttostr(round(strtofloat(label59.caption)));
atau
label59.caption:=inttostr(round(hargapng));
atau
label59.caption:=inttostr(dit.qpjt.fields[11].asInteger);
baru nilai label59 berubah.
misal 12340,56. dibulatkan 12340. Seharusnya membulatkan 12300
mengenai hal ini, mas adit bisa buat fungsi sendiri. contoh:

Function Bulatkan(Value:Extended):Integer;
begin
   Value:=Round(Value);
   Result:=Value - Value mod 100 + IfThen((Value mod 100) > 50, 100, 0);
   {untuk penggunaan IfThen tambahkan unit Math dalam uses clause}
end;
Semoga berhasil.
more ...
  • Pages:
  • 1
  • 2
Share to

Random Topic

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com