Kayıtlar

float hafızasa nasıl saklanır etiketine sahip yayınlar gösteriliyor

C++ Floating Point Aritmetik

Resim
 C++ 'ın ondalık sayılardaki davranışını, pardon garip davranışını inceliyoruz. Biraz bildiğiniz ve anlamlandırabileceğiniz aritmetiğin dışına çıkmış olacağız. Bakalım neler var; bir for döngümüz olsun, 0 dan başlasın ve 2 ye eşit olmadığı sürece dönmeye devam etsin, adımlarımızda 0.01f olsun, beklentimiz ne olurdu bu durumda 0, 0.01, 0.02 ... şeklinde devam ederek 1.98, 1.99 ve son olarak 2.0 olur ve döngümüz sonlanır diye hayal ediyoruz, ancak beklenmedik şekilde döngümüz asla sonlanmıyor 😱   kodumuz şöyle isteyen deneyebilir : float   total   =   0 ; for   ( float   a   =   0 ;   a   !=   2 ;   a   +=   0.01f )   { total   +=   a ; } net bir ifade olan a != 2 dediğimiz yeri biraz daha yumuşatalım ve  a < 2; yapalım, bu durumda a 2 den illaki büyük olacak ve döngü sonlanacak, sonlanacak sonlanmasına da burda da bir sürpriz bekliyor bizi, total değişkeni 199 değil 201 olacak, bu olan bilgisayarlar işlemciler için IEEE754-Compliant standard yayınlamıştır. Bunun olmasının s