Jika kita menggunakan basis 10, maka 0,1 akan ditambahkan ke x sebanyak 100kali sampai mencapai 10,0 dengan tepat. Tapi komputer menggunakan basis dua floating point, yang artinya tidak merepresentasikan nilai 0,1 secara tepat. Variabel x bisa jadi tidak akan mencapai nilai 10,0 dengan tepat dan program tidak akan looping tanpa henti.
float x;
for ( x = 0.0; x != 10.0; x += 0.1 )
{
System.out.println("Crimson and Clover");
}
Tidak hanya fixed point yang tidak bisa merepresentasikan sepersepuluh dengan benar, tetapi juga floating point yang biasa dipakai di bahasa pemrograman juga memiliki masalah yang sama.
Tidak ada komentar:
Posting Komentar