çıkartma sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

çıkartma sorunu

Mesaj gönderen y.kulac »

s.a.
arkadaşlar aşağıdaki kodda bir hata yok sanırım.

Edit5.Text:= IntToStr(StrToInt(DbEdit1.Text) - (StrToInt(DbEdit1.Text));

Buradaki sorun 15.000.000.000 - 4.500.000.00 işlemini yapmak istediğim zaman
''15.000.000.000'' is not a valid integer şeklinde bir hata veriyor.
tamam 15.000.000.000 integer değil ama daha önceleri bu işlemi yapmıştım sanırım.

neler önerirsiniz. bu işlemi yapmak zorundayım.
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

maskdan dolayı nokta eklenmiş ya noktaları kaldırıp çıkartan bi fonksiyon kullanın (daha önce forumda geçmişti) yada çıkartma işlemini calculated alanda yaptırıp alandan çekin. birde 15 milyar integer sınırları içindemi bir kontrol edin :) olmayabilir...
not: evet sınır dışı floata çevirin
Type Range Format
Integer -2147483648..2147483647 signed 32-bit
.-.-.-.-.-.-.-. ^_^
ng
Üye
Mesajlar: 192
Kayıt: 01 Mar 2004 11:49
Konum: Bursa
İletişim:

Mesaj gönderen ng »

Yada

Kod: Tümünü seç

Edit5.text:=intToStr(DBedit1.field.asinteger-DBedit2.field.asinteger);
yapabilirsin
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

bende iyi bir alışkanlık oluştu böyle işlemleridirek satırda yapmıyorum,değişkenlere atayıp onlarda yapıyorum. birçok faydası oluyor,
birincisi bendeki gibi çok karışık matematik işlemleri olan prosedürleri okuması acaip kolaylaşoyor., hata bulma kolaylaşıyor, exceptionları kontrol edip ona göre sonuç verebiliyorsun vs...

Kod: Tümünü seç

function ...
var rDenstiy,rLength,rWeight....: real;
begin
result:= -1;
rDesttiy := ...Field[Densti.].asfloat;
rlenght := ...Field[...].asfloat;
rWeight := ...Field[..].asfloat;

a:= 0;
try 
  for a:= 0 to 1000 do
  a:= a+exp((rDenstiy*(rLength/1000)),rWeight*k(i)) ;
except 
 result := -1;
 uyarın..........
end;
gibi
.-.-.-.-.-.-.-. ^_^
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

Mesaj gönderen y.kulac »

öncelikle ilginize teşekkür ederim arkadaşlar.

Sorgu ile;

Query3.SQL.Add('Select SUM (Miktar) as Miktar From Odenek_Giris');
Miktar alanındaki miktarları toplattırıp DbEdit1 e aktarıyorum.

Query4.SQL.Add('Select SUM (OdemeTutari) as OdemeTutari From Odenek_Harcama');

OdemeTutari alanındaki miktarları toplattırıyorum ve bunu DbEdit2'ye aktarıyorum.

Edit5 te de bu iki toplamın arasındaki farkı görmek istiyorum.

:?: :?: :?:
Kullanıcı avatarı
salvation
Üye
Mesajlar: 303
Kayıt: 22 Mar 2004 01:57
Konum: Eskişehir
İletişim:

Mesaj gönderen salvation »

eğer değerleri düzgün bi integer formatında almak istiyosan aşağıdaki fonksiyonu kullanabilirsin. O fonksiyon, değişken içindeki boşlukları "0" ile değiştiriyor. Eğer senin db den aldığın değerde virgül falan varsa, bu fonsiyon ile temizleyip sonra işlemi yaptırmayı dene.

Kod: Tümünü seç

var S: string;
begin
  S := '   123.5';
  { Convert spaces to zeros }
  while Pos(' ', S) > 0 do
    S[Pos(' ', S)] := '0';
end;
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.A.

Kod: Tümünü seç

try
edit5.text:=floattostr(query3.fieldbyname('miktar').asfloat + query4.fieldbyname('OdemeTutari').asfloat);
except edit5.text:='0'; end;
query3 ve 4 ü kapatmadan yazarsan olması lazım. Eğer miktar veya odemetutari null olursa hata verir. o yüzden try except içine aldık.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

Mesaj gönderen y.kulac »

s.a.

arkadaşlar hepinizden Allah razıolsun. Allah(c.c) tün sıkıntılarınızı gidersin.

aslangeri kardeşimin gönderdiği kod işimi gördü.

try
edit5.text:=floattostr(query3.fieldbyname('miktar').asfloat -query4.fieldbyname('OdemeTutari').asfloat);
except edit5.text:='0'; end;
Cevapla