Hai mas Zainul, datatype double dan single adalah bilangan approximate dan diproses dengan algoritma yang berbeda dengan bilangan bulat seperti integer atau long. Jadi nilai desimal suatu bilangan akan tersusun dalam banyak angka dibelakang koma yang dibulatkan. Sedangkan fungsi Int() akan membulatkan ke terkecil terdekat.
Alhasil, semua bilangan approximate (double dan single) akan dibulatkan ke nilai terkecil terdekat. Sedangkan 1 didefinisikan sebagai nilai approcimate berupa 0.99sekian Fungsi konversi datatype berbeda dengan fungsi pembulatan suatu angka seperti Int() Int(99.99) = 99 Int(-99.99) = -100 Cint(99.99)=100 Cint(-99.99)=-100 maksud dari syntax mas Zainul adalah memeriksa apakah selisihnya bernilai 1, maka kerjakanlah keduanya sebagai bilangan bulat, atau jadikanlah hasil akhir sebagai bilangan bulat silakan dicoba, agar punya gambaran yang lebih jelas clng((204.01-204) * 100) 204.01 * 100 mod 204*100 clng(204.01 * 100) - clng(204 * 100) Semoga bermanfaat. Kid. 2010/2/27 zainul ulum <[email protected]> > > > Men-temen, > > Saat lagi mencoba menjalankan macro, ternyata hasilnya berbeda dengan yang > saya harapkan. > > Kemudian saya debug/telurusi dimana letak kesalahannya. Ternyata ada satu > baris syntax yang membuat aku bingung yaitu: > > Kenapa INT((204.01 - 204) * 100) <> 1 ? > Bukankah INT(0.01*100)=INT(1)=1 > > Apakah ada yang salah dengan coding saya? > > Terimakasih > _zainul_ > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature > database 4899 (20100226) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.eset.com > > > >

