işlem sonucun daki sayıların ondalik hassasiyeti

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
cuneytak
Üye
Mesajlar: 18
Kayıt: 27 May 2005 12:36

işlem sonucun daki sayıların ondalik hassasiyeti

Mesaj gönderen cuneytak »

İyi günler arkadaşlar şu an üzerinde çalıştıgım programda bazı hesaplamalar yaptırmaktayım bu hesaplamalar da power fonksiyonunu ve diger 4 işlemi kullandım hesaplama sonuclarını extended yada double degişkenlere atıyorum fakat rakam sıfırdan küçüldükce sonucumda ki sapma giderek artıyor excell deki hesaplara göre

örnek olarak deney sonucları 0,001 düzeyine indiginde excell de -0,37 olarak bulunan degeri programda -0,15 bulabiliyorum bunun sebebi ne olabilir yada bölme işlemi yerine div gibi fonksiyonları kullanmak mı gerekmektedir.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
eğer excell deki ve delphideki formulleri gönderirseniz neden böyle olduğu konusunda daha fazla yardımcı olabiliriz sanırım.
excell in doğru hesapladığı kesin mi?
yani excell de yuvarlama ypıyor olabilir.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
cuneytak
Üye
Mesajlar: 18
Kayıt: 27 May 2005 12:36

Mesaj gönderen cuneytak »

rocarp1[sayac]:=rocarp1[sayac]+
((ro[sayac]/((ro[sayac]-1)*(ro[sayac]-2)))*(power(((strtofloat(datadm.dm.ibsdsetana.Fields[araci].text)-(rotopla[sayac]/ro[sayac]))/rosapma[sayac]),3)));

robask1[sayac]:=robask1[sayac] +(((ro[sayac]*(ro[sayac]+1))/((ro[sayac]-1)*(ro[sayac]-2)*(ro[sayac]-3)))*(power(((strtofloat(datadm.dm.ibsdsetana.Fields[araci].text)-(rotopla[sayac]/ro[sayac]))/rosapma[sayac]),4)));


kullandıgım hesaplamalardan bazıları burdan cıkan sonucuda tekrar bir işleme daha tabi tutuyorum field daki degişken float excell deki hesabın dogru yapıyor 1 den büyük degerler de örnek olarak 23,689 gibi onlarda yuvarlamalardan dolayı fazla bir sey degişmiyor sonuc lar tutuyor.
Cevapla