parasal tip farkı[çözüldü]

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

parasal tip farkı[çözüldü]

Mesaj gönderen Lord_Ares »

merhaba, firebird te toplam tutar alanını float tipinde tanımladım. edit içinden 13,45 gibi bir değer girdiğimde

veritabanında şöyle gözüküyor 13,450
programda şöyle gözüküyor 13,4499998092651
veritabanında alan çift tıkladığımda ise 13,4499998092651 şeklinde yine

bu neden kaynaklanıyor, tip olarak Float yerine başka tip mi seçmeliyim, edite ne giriyorsam veritabanında da o şekilde olsun istiyorum.

display ve edit format larını #,##0.00 yapınca programda düzgün görünüyor fakat frebird ten baktığımda alan yine 13,4499999 şeklinde. Acaba numaric mi kullanmalıyım
En son Lord_Ares tarafından 16 Eyl 2013 09:42 tarihinde düzenlendi, toplamda 2 kere düzenlendi.
apex06
Üye
Mesajlar: 58
Kayıt: 19 Nis 2012 12:21

Re: parasal tip farkı

Mesaj gönderen apex06 »

ben numeric(15,2) olarak tanımlama yapmışım.
15 : karakter sayısı
2 : virgülden sonraki karakter sayısı


örnek : 999.999.999.999.999,99
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: parasal tip farkı

Mesaj gönderen Lord_Ares »

peki kod ile veri nasıl kaydediyorsun,

normalde
toplam.asfloat:=strtofloat(edit1.text)

numaric yaptığımda TIPBCDField çıkıyor nasıl kayıt girmem gerekli şöyle yaptım olmadı
toplam.value:=strtofloat(edit1.text)

veritabanına baktığımda şöyle bir hata görüyorum 1 records fetched
apex06
Üye
Mesajlar: 58
Kayıt: 19 Nis 2012 12:21

Re: parasal tip farkı

Mesaj gönderen apex06 »

currency ile dener misin?
toplam.value:=StrToCurr(edit1.text)
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: parasal tip farkı

Mesaj gönderen Lord_Ares »

veritabanın da değer boş , ve 1 records fetched yazıyor :)))

DataM.TTURSATISPARA.Value:=StrToCurr(Form1.Edit4.Text);
apex06
Üye
Mesajlar: 58
Kayıt: 19 Nis 2012 12:21

Re: parasal tip farkı

Mesaj gönderen apex06 »

Lord_Ares yazdı:veritabanın da değer boş , ve 1 records fetched yazıyor :)))

DataM.TTURSATISPARA.Value:=StrToCurr(Form1.Edit4.Text);

DataM.TTURSATISPARA.AsCurrency:=StrToCurr(Form1.Edit4.Text);

olarak dener misin?
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: parasal tip farkı

Mesaj gönderen Lord_Ares »

DataM.TTURSATIS.Insert;
DataM.TTURSATISPARA.AsCurrency:=StrToCurr(Form1.Edit4.Text);
DataM.TTURSATIS.Post;

kodumda mı bir hata var diyerek ayrı bir buttona yazdım fakat sonuç aynı ..
apex06
Üye
Mesajlar: 58
Kayıt: 19 Nis 2012 12:21

Re: parasal tip farkı

Mesaj gönderen apex06 »

bütün olasılıkları düşünmeye başladım..
Field'in properties'inde curreny'i true'mu?
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: parasal tip farkı

Mesaj gönderen Lord_Ares »

evet true, bende netten baktım ama sonuç bulamadım..
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: parasal tip farkı

Mesaj gönderen greenegitim »

Datasetine çift tıkla orada ilgili alanı seç solda object Inspector da displayFormat var oraya #,###.00 yazıp bir dene.
Mücadele güzelleştirir!
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: parasal tip farkı

Mesaj gönderen Lord_Ares »

dostum onu denedim,sorun görüntülemede değil, kayıt girişinde.
aldığım hatalar
1) numaric tanımlanmış bir alana şu şekilde bilgi girişi yapamıyorum

Kod: Tümünü seç

                DataM.TTURSATIS.Insert;
                DataM.TTURSATISPAR.AsCurrency:=StrToCurr(Form1.Edit4.Text);
                DataM.TTURSATIS.Post;
veritabanına baktığımda kayıt boş görünüyor. ve veritabanında şu yazıyor 1 records fetched

2) alanın tipini numaricten floata çevirirsem bu seferde edite girilen rakam 2,45 veritabanında gözüken 2,4499987546 şeklinde
bunu senin dediğin şekilde display format ile gösterlişini düzeltebiliriz fakat ozamanda sorun şu ki , programda bana toplamtutarı 3,5 olanları ver desem sonuç boş dönecek çünkü veritabanıındaki rakam 3,5469856564
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: parasal tip farkı

Mesaj gönderen greenegitim »

ben double kullanıyorum ve atama yaparken

Kod: Tümünü seç

 DataM.TTURSATISPAR.value:=strtofloat(edt_sayi.text);
diyorum ve sorgu ile çekerken having kullanıyorum.
Mücadele güzelleştirir!
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: parasal tip farkı[çözüldü]

Mesaj gönderen Lord_Ares »

arkadaşlar yardım için teşekkürler sorunu buldum.

Sorun Veritabanında yeni bir alan tanımladıktan sonra
ibdatasete gidip selectSQL kısmını silip yeniden ekledim.
Generate ile yeni generator yarattım
Datasetteki tüm alan isimlerini silip ctrl-A ile yeniden seçtim.
sorunu şuymuş Genarete kısmında yeni eklediğim alan seçilmemiş durumda kalıyormuş. Bu yüzden de yeni kayıt girmiyor.
Diğer tablolarımı inceledim, 1recods fetched dediğide sanırım tablomdaki kayıt sayısını gösteriyor hata deil.
Cevapla