çıkartma sorunu
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
çıkartma sorunu
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.
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.
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

not: evet sınır dışı floata çevirin
Type Range Format
Integer -2147483648..2147483647 signed 32-bit
.-.-.-.-.-.-.-. ^_^
Yada
yapabilirsin
Kod: Tümünü seç
Edit5.text:=intToStr(DBedit1.field.asinteger-DBedit2.field.asinteger);
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...
gibi
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;
.-.-.-.-.-.-.-. ^_^
ö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.

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.



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;
s.A.
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.
Kod: Tümünü seç
try
edit5.text:=floattostr(query3.fieldbyname('miktar').asfloat + query4.fieldbyname('OdemeTutari').asfloat);
except edit5.text:='0'; end;
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim