m_dak.Field.value:=(devir.Field.value / bukum.Field.value)*1000;
bu işini görür.
Division by zero hatası
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Selamlar,
İlginç bir mantıktan bahsedeyim
Dikkat bu mantık ancak kaba hesaplamalar yapılırken kullanılabilir aksi takdirde hataya yol açar bu sebeple dikkatli kullanılmalıdır.
A = B / (C + 0.0000000001)
Sizin örneğinize göre
şeklinde olabilir.
Burada her ne olursa olsun 0'a bölme hatası almazsınız ancak hesaplamalarınızda milyarda bir hataya yol açar. Bu hatayı da görmezden gelebilecek kadar kaba bir hesap ise kullanabilirsiniz.
Bu tip bir uygulamayı ben Interbase/FireBird'de yapıyorum Select'de bir hesaplamalı Query çekersen eğer değer 0 (Sıfır) ise Query patlıyor bunun önüne geçebilmek için böyle bir hinlik yaptımdı
Ancak tekrar hatırlatıyorum. Hassasiyetinize bağlı olarak bu yöntemi kullanıp kullanmamak elinizde. Hatta Milyarda bir değil Trilyonda bir gibi bir hata payına veya daha düşük seviyelere de çekmek elinizde
Bu aslında biraz sabunlama yöntem sınıfında ama sonuç eğer etkilenmiyorsa kullanılabilir.
Herkese kolay gelsin.
İlginç bir mantıktan bahsedeyim

Dikkat bu mantık ancak kaba hesaplamalar yapılırken kullanılabilir aksi takdirde hataya yol açar bu sebeple dikkatli kullanılmalıdır.
A = B / (C + 0.0000000001)
Sizin örneğinize göre
Kod: Tümünü seç
m_dak.Field.AsFloat:=(devir.Field.AsFloat / (bukum.Field.AsFloat + 0.0000000001)*1000;
Burada her ne olursa olsun 0'a bölme hatası almazsınız ancak hesaplamalarınızda milyarda bir hataya yol açar. Bu hatayı da görmezden gelebilecek kadar kaba bir hesap ise kullanabilirsiniz.
Bu tip bir uygulamayı ben Interbase/FireBird'de yapıyorum Select'de bir hesaplamalı Query çekersen eğer değer 0 (Sıfır) ise Query patlıyor bunun önüne geçebilmek için böyle bir hinlik yaptımdı

Ancak tekrar hatırlatıyorum. Hassasiyetinize bağlı olarak bu yöntemi kullanıp kullanmamak elinizde. Hatta Milyarda bir değil Trilyonda bir gibi bir hata payına veya daha düşük seviyelere de çekmek elinizde

Bu aslında biraz sabunlama yöntem sınıfında ama sonuç eğer etkilenmiyorsa kullanılabilir.

Herkese kolay gelsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Tekrar Selam,
kodda bir hata var
(parantez hatası düzeltiyorum,
Pardon
ehi ehi ehiii 
kodda bir hata var

Kod: Tümünü seç
m_dak.Field.AsFloat:=(devir.Field.AsFloat / (bukum.Field.AsFloat + 0.0000000001))*1000;


Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/