Merhaba
5 tane alanım var: Tutar, Odenen1, Odenen2, Odenen3, Kalan
Kalan Calculation Field
Kalan = Tutar - (Odenen1 + Odenen2 + Odenen3);
Diyelim ki Tutar 13,95 olsun
Odenen1 e 13,95 girdiğim zaman Kalanı 0 olarak hesaplıyor.
Odenen1 e 10 Odenen2 ye 3,95 girersem Kalan = -8,88178419700125E-16 gibi abuk subuk bir rakam hesaplıyor.
Aslında bu rakam 0 a çok yakın bir rakam ama 0 değil.
Odenen1 e 5 Odenen2 ye 5 Odenen3 e 3,95 girersem yine abuk subuk rakamı hesaplıyor.
Yani ben Odenenlerin toplamını tutar kadar giriyorum ama 0 bulması gerekirken saçmalıyor.
Alanlarımın hepsi float
OnCalculationa yazdığım kod çok basit:
Kalan.AsFloat = Tutar.AsFloat - (Odenen1.AsFloat + Odenen2.AsFloat + Odenen3.AsFloat);
1 haftadır bulamadım bunun gibi bişey başına gelen var mı ???
İlginç bir float toplama hatası
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 50
- Kayıt: 12 Haz 2003 09:53
- Konum: www.mussimsek.com
Hocam ödenen 1'e 10 diğerine 3,95 girince saçmalıyro diyorsunuz peki ödenen 1'e 10,00 diğerine 3,95 girdiğin zaman yada sadece ödenen 1'e sadece 10,00 gir yine saçma sapan rakamlar mı gelecek eğer yine sorun devam ederse yazdığım kod bloğunu gönderirsen daha iyi yardımcı olurum.
Kolay gelsin...
Kolay gelsin...
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
-
- Üye
- Mesajlar: 50
- Kayıt: 12 Haz 2003 09:53
- Konum: www.mussimsek.com
Evet hocam dediğin gibi girince de saçmalama olayı devam ediyor.
Kod şöyle
Bu arada bu dataset TdxMemData. Onunla ilgili olabilirmi acaba ?
Kod şöyle
Kod: Tümünü seç
procedure TFrmVezneKaydi.MDOdenecekCalcFields(DataSet: TDataSet);
var T, O1, O2, O3, K: Double;
begin
T:=DataSet.FieldByName('Tutar').AsFloat;
O1:=DataSet.FieldByName('Odenen1').AsFloat;
O2:=DataSet.FieldByName('Odenen2').AsFloat;
O3:=DataSet.FieldByName('Odenen3').AsFloat;
K:=T - (O1 + O2 + O3);
DataSet.FieldByName('CalcKalan').AsFloat:=K;
end;
-
- Üye
- Mesajlar: 50
- Kayıt: 12 Haz 2003 09:53
- Konum: www.mussimsek.com