kodlar farklı pc de farklı davranırmı...???

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
ahadabu
Üye
Mesajlar: 15
Kayıt: 16 Nis 2006 11:40

kodlar farklı pc de farklı davranırmı...???

Mesaj gönderen ahadabu »

Kod: Tümünü seç

if (strtofloat(jvedit2.Text) + strtofloat(jvedit3.Text) + strtofloat(jvedit4.Text)) < strtofloat(alis_fiyati.caption) then begin... kodlar... end;
türünden bir kar karşılaştırma deyimi iki bilgisayarda farklı sonuçlar döndürüyor... programı yaptığım bilgisayarda düzgün çalışıyo iken başka bilgisayarda yanlış sonuç döndürüyor... Şöyleki başka bilgisayarda karşılaştırmanın iki tarafı eşit olsa bile bu deyimden sonraki begin end; bloğu çalışıyor... kendi bilgisayarım dışında işyerindeki iki bilgisayarda denedim... İkisindede sonuç aynı.. Böyle bir duruma ne sebep olabilir acaba......
Hayatta iz bırakmak istiyorsan başkalarının ayak izlerine basarak yürüme :)
akdatilla
Üye
Mesajlar: 292
Kayıt: 02 Nis 2006 06:04
Konum: Antalya

Mesaj gönderen akdatilla »

Merhaba
Bence hatayı bulmak için karşılaştırmaya konu olan değerleri açıkca görmen gerekir.
programı aşağıdaki şekilde güncelleyerek kendi bilgisayarında ve diğer hata verdiğini söylediğin bilgisayarlarda dene.

Kod: Tümünü seç

a:=strtofloat(jvedit2.Text);
b:=strtofloat(jvedit3.Text);
c:=strtofloat(jvedit4.Text);
d:=strtofloat(alis_fiyati.caption);
showmessage('Karşılaştırma ifadesi:('+floattostr(a)+'+'+floattostr(b)+'+'+floattostr(c)+')<'+floattostr(d));
if (a + b+ c) < d then begin... kodlar... end;
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Reel tipteki sayıların bilgisayar belleğinde ikili sayı sisteminde (binary) temsil edilmesi o sayıyı tam olarak ifade edemeyebilir. Milyarda birli hanelerde bazı hatalar olabilir ama bu hatalar çok da önemli değildir ama bu yüzden if şartlarında bu eşitsizlik doğmaktadır. Benim önerim bazı yuvarlamalar ve ihmaller yapmanız gerekecektir.

Bknz:viewtopic.php?p=123234#123234
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
ahadabu
Üye
Mesajlar: 15
Kayıt: 16 Nis 2006 11:40

Mesaj gönderen ahadabu »

bende söyledikleriniz uyguluyorum ancak sorunum benim programı yazdığım makine dışında bir makinede benim makinemde çalışan ve hiçbir sorun vermeyen exe sorun veriyor.. iki makineninde bölge ve dil ayarları tamamen aynı.. benim makinemde if şartları düzgün çalışıyor ancak başka makineye kurduğum zaman if şartları hatalı çalışıyor..
Hayatta iz bırakmak istiyorsan başkalarının ayak izlerine basarak yürüme :)
Cevapla