Arsip: Pembulatan bilangan desimal

more 16 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...

more 16 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...
more 16 years ago
deLogic
ehm... mas manz.. konversinya gak kebalik tuh?
mungkin maksudnya begini:
hargapng := round(strtofloat(label59.Caption));

more 16 years ago
Manz
:lol: sorry om deLogic .... huehehehehehehe :mrgreen:
kebalik ... jadi malu ... huehehehehehe :lol:

more 16 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?

more 16 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

more 16 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=

more 16 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 12300mengenai 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
reply |
Report Obsolete
Last Articles
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 2 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 2 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 2 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 2 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 2 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 2 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 3 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 10 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 10 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 10 years ago
Random Topic
- cara ndeteksi warna pake webcam
by delphi_tikuzz in Network, Files, I/O & System more 16 years ago - pemograman Modem
by jkssbma in Enginering more 17 years ago - perintah update dari 2 tabel di paradox
by masimam_h in Paradox more 15 years ago - Backup DB MSSQL dari query Delphi
by esti_g in MsSQL more 15 years ago - Mengetahui Nilai yang sama di dalam tabel
by onsir in MySQL more 15 years ago - Ultah @Delphi Expert
by saysansay in OOT more 16 years ago - Sistem Informasi Geografis
by peucang in Hal umum tentang Pascal Indonesia more 15 years ago - [ASK] Delphi 2009 + MySQL, report viewernya apa ya
by edoardputro in Lain-lain more 11 years ago - [ask]membuat nilai infite dalam delphi
by willbrig in Tip n Trik Pemrograman more 15 years ago - pengen nampilin nama hari di MS SQL
by alvonz in MsSQL more 14 years ago