parasal tip farkı[çözüldü]
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
parasal tip farkı[çözüldü]
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
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.
Re: parasal tip farkı
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
15 : karakter sayısı
2 : virgülden sonraki karakter sayısı
örnek : 999.999.999.999.999,99
Re: parasal tip farkı
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
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
Re: parasal tip farkı
currency ile dener misin?
toplam.value:=StrToCurr(edit1.text)
toplam.value:=StrToCurr(edit1.text)
Re: parasal tip farkı
veritabanın da değer boş , ve 1 records fetched yazıyor
))
DataM.TTURSATISPARA.Value:=StrToCurr(Form1.Edit4.Text);

DataM.TTURSATISPARA.Value:=StrToCurr(Form1.Edit4.Text);
Re: parasal tip farkı
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?
Re: parasal tip farkı
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ı ..
DataM.TTURSATISPARA.AsCurrency:=StrToCurr(Form1.Edit4.Text);
DataM.TTURSATIS.Post;
kodumda mı bir hata var diyerek ayrı bir buttona yazdım fakat sonuç aynı ..
Re: parasal tip farkı
bütün olasılıkları düşünmeye başladım..
Field'in properties'inde curreny'i true'mu?
Field'in properties'inde curreny'i true'mu?
Re: parasal tip farkı
evet true, bende netten baktım ama sonuç bulamadım..
- greenegitim
- Üye
- Mesajlar: 713
- Kayıt: 28 Nis 2011 10:33
- Konum: İstanbul
Re: parasal tip farkı
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!
Re: parasal tip farkı
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
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
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;
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
- greenegitim
- Üye
- Mesajlar: 713
- Kayıt: 28 Nis 2011 10:33
- Konum: İstanbul
Re: parasal tip farkı
ben double kullanıyorum ve atama yaparken
diyorum ve sorgu ile çekerken having kullanıyorum.
Kod: Tümünü seç
DataM.TTURSATISPAR.value:=strtofloat(edt_sayi.text);
Mücadele güzelleştirir!
Re: parasal tip farkı[çözüldü]
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.
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.