Floating Hatası !!!

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Floating Hatası !!!

Mesaj gönderen ozcank »

Arkadaşlar ben bu sorunumu cözemedim yardım edin?
'Invalid floating point operation' hatası alıyorum.


Kod: Tümünü seç

procedure TForm16.Button1Click(Sender: TObject);
Var
SONAL,SONKAL:Real;
begin
Try
Query1.close;
Query1.Params[0].AsDate:=StrToDate(MaskEdit1.Text);
Query1.Params[1].AsDate:=StrToDate(MaskEdit2.Text);
Query1.ParamByName('ELEMANK').AsFloat:=StrToFloat(Edit1.Text);
Query1.ParamByName('GROUP').AsString:='-1';
Query1.Open;
Label5.Caption:=FormatFloat('##,###',Query1GENTOPLA.AsFloat);
Label10.Caption:=FormatFloat('##,###',Query1TPESTUT.AsFloat);
Label9.Caption:=FormatFloat('##,###',Query1TKALTUT.AsFloat);
SONAL:=Query1GENTOPLA.AsFloat;
SONKAL:=Query1TPESTUT.AsFloat;
Edit2.Text:=FloatToStr(Round((SONKAL/SONAL)*100)/100);
Label12.Caption:=IntToStr(Query1.RecordCount);
Query1.refresh;
  Except
ShowMessage('Hatalı Tarih ! Lütfen Düzgün Tarih Giriniz !!!');
end;
end;
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Hangi satırda hata verdiğini tahmin mi edelim, yoksa yazı tura mı atalım :?:
Bari tahmin edeyim;

Kod: Tümünü seç

Query1.ParamByName('ELEMANK').AsFloat:=StrToFloat(Edit1.Text); 
buradaki Edit1 de olabilir. try / except / end içinde kontrol edersen gelişigüzel hata almamayı garanti edersin. Sonuçta Text alana her şey girilebilir değil mi :?:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

özür dilerim haklısınız.
hatayı şurda alıyorum

Kod: Tümünü seç

Edit2.Text:=FloatToStr(Round((SONKAL/SONAL)*100)/100); 
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

merhaba,

sanırım bölme işlemi veya çarpma işleminde hata oluşuyor. tam olarak sana söyleyemeyeceğim şurayı değiştir diye dönen değerleri sen biliyorsun belki / yerine div kullanırsan ben böyle işlemlerde başım ağrırdı ve ya dönüştürmede yada tam sayı virgüllü sayı bölmeleri gibi durumlarda yani / ve div gibi kısımlarda hata yapardım.

kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

olmadı ya arkadaşım ne denediysem yok yardım edin lütfen ya başka bir yolum var mı?
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

@ozcank ustam köstek olmak veya yanlış bilgi ile seni yanlış yerler yönlendirmek istemiyorum. kodunda round kullanmışsın şuan ben buna yabancıyım fakat ben buna yakın bir yapım vardı. query ile sorguluyor çıkan sayıyı bölerek label içinde göstermek istiyordum. direkt query nin field leri ile bölmeye kalktığımda sorunu aşamıyordum ne yaptım ise olmuyordu. hatanın üzerine gidip çözmek lazım ama yapmadık ve günü kurtardır. query den dönen sonuçları label veya dbtext içine alıyordum ve bu dbtext içindeki sayıları bölme veya çarpma işlemi uygulayarak çözüme ulaşmıştım.

size ancak bukadar söyleyebilirim. bir de öyle deneseniz diyorum dbtext.caption içine dönen sonuçları alın ve onları çarpıp bölmeye uğraşın. eğer sonuç alırsanız da benim gibi geçici bırakmayın daha sonra çözmeye çalışın ve yaparsanızda bizede bildirinki hep beraber öğrenmiş olalım.

kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

Sanırım bu soru başka bir başlıkta da vardı.

Ben işlemin her bir adımını bir değişkene atayarak debug eder ve debug esnasında bu değişkenlerin aldığı değerlere bakardım.

Hatanın sebebi böylece bulunabilir.
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Kullanıcı avatarı
ozkanagiral
Üye
Mesajlar: 79
Kayıt: 17 Oca 2004 06:23
Konum: istanbul
İletişim:

Mesaj gönderen ozkanagiral »

hdayi yazdı:Sanırım bu soru başka bir başlıkta da vardı.

Ben işlemin her bir adımını bir değişkene atayarak debug eder ve debug esnasında bu değişkenlerin aldığı değerlere bakardım.

Hatanın sebebi böylece bulunabilir.
evet başka bir başlıkta bu soru vardı bende hata kodunu yazabilirmisin demiştim, burada geçersiz bir işlem olduğu aşikar büyük olasılık girilen veride hata var bu konuda bazı dökümanlar var ama ilgisiz görünüyor bu sebeple hata kodu varsa bunuda yazarsanız iyi olur (doğru tespit için)
Kullanıcı avatarı
ozkanagiral
Üye
Mesajlar: 79
Kayıt: 17 Oca 2004 06:23
Konum: istanbul
İletişim:

Mesaj gönderen ozkanagiral »

bir test yaptım

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
Var
Sonkal, Sonal : double;
begin
Sonkal := StrToFloat(Edit1.Text);
Sonal := StrToFloat(Edit3.Text);
Edit2.Text:=FloatToStr(Round((SONKAL/SONAL)*100)/100);
end;
bu işlemde girilen değer sıfırsa bu hatayı veriyor yada boş giriş varsa, farklı rakamlar girildiğinde işlem yapıyor. sonuç olarak formülünü çalıştırmadan önce girilen değerleri denetle sıfır değerse işleme sokma kullanıcıdan veri iste, try except bloğu ile hata denetimine almışsın ama bu bloğun içinde

Kod: Tümünü seç

SONKAL ve SONAL
değerlerini denetle derim ve bir değer yoksa işleme sokmadan kullanıcıdan veri girişi iste benim önerim bu İyi Çalışmalar.
Kullanıcı avatarı
ozkanagiral
Üye
Mesajlar: 79
Kayıt: 17 Oca 2004 06:23
Konum: istanbul
İletişim:

Mesaj gönderen ozkanagiral »

bu işlemde girilen değer sıfırsa bu hatayı veriyor yada boş giriş varsa,
burada yanlış yazmışım arkadaşlar boş giriş varsa is not a valid floating point value hatası olacaktı. Sadece sıfır değeri girilirse Invalid floating point operation hatası veriyor.
Kullanıcı avatarı
huseyinert
Üye
Mesajlar: 233
Kayıt: 19 Nis 2005 06:49
Konum: Bartın

Mesaj gönderen huseyinert »

hiç bir sayı sıfıra bölünemez ve tanımsızdır burda bi değer 0 a bölünmek isteniyor sanırım, hata bundan kaynaklanıyor bi şekilde sıfır değer olduğunda işlem yaptırmayıp sıfırdan farklıyla işlem yaptırmayı denemelisiniz...
"Kula bela gelmez Hak yazmayınca,Hak bela yazmaz kul azmayınca..." MEVLANA
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

SONAL değişkeninin sıfır olup olmadığını kontrol edin. Yada işlemi try / except içinde yapın.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Cevapla