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

Kirim email ke