AsCurrency ve AsFloat ARasındaki fark ..!

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

AsCurrency ve AsFloat ARasındaki fark ..!

Mesaj gönderen vkamadan »

Merhaba arkadaşlar,
bugün çok tedirgin edici bir yanılgıya düştüğümü kanıtlayan bir sorunla karşılaştım :shock:

MySQL Database de,tutar adında Double tipinde örneğin değeri 278.72 olan bir bilgim var ,
ve Delphi tarafındada tutar adında ve Double tipinde bir değişkenim var beni şok eden olay şu

Kod: Tümünü seç

if tutar<>Query1tutar.AsCurrency then ....
olayında DEBUG modda inceledim her iki değerinde 278.72 ye eşit olduğunu görmeme rağmen bu iki değerin birbirine eşit olması durumda çalışan THEN bloğu çalışıyor ama AsCurrency yerine AsFloat kullanırsam sorun yok. asıl büyük sorun projemde her yerde AsCurrency kullandım databasenden gelen Double alanları okumak için ve bugüne kadar yaptığımın doğru olduğunu düşünüyordum. bu durumun nedeni nedir arkadaşlar? iyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

Floatin point alanlar biraz farklıdır. yani siz nekadar doğruluk isterseniz okadar doğru cevap alırsınız. field propertieinde precision alanı var. onu azaltın.
.-.-.-.-.-.-.-. ^_^
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

teşekkürler, peki Direk databaseden aldığım alanlar için ne olacak ,
örn:

Kod: Tümünü seç

if tutar <> Query.FieldByName('tutar').AsCurrency then...
gerçekten zor bir durum benim için. :roll:

iyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
MakPRO
Üye
Mesajlar: 251
Kayıt: 31 Eki 2003 05:21
Konum: Antalya
İletişim:

Mesaj gönderen MakPRO »

mrb

Kod: Tümünü seç

var
tutar:Currency;
bir de

var
tutar:Double;

FloatToCurr(tutar)
tanımlamıyı bu şekilde yapmayı denedinmi ?
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Merhaba ,
şimdi projenin genelinde kullandığım database deki Double alanlar için hep AsCurrency ifadesidir, şimdi sorunlarla karşılaşmamak için en uygun olan AsFloat mıdır AsCurrency midir yada başka birşeymidir yeri geliyor ,

Kod: Tümünü seç

if Q1.Fields[0].AsCurrency = Q2.Fields[0].AsCurrency then...
şeklinde ifadeler kullanılıyor en sağlıklısı nedir arkadaşlar. yada her iki tarafıda aynı standada sokabiliecek bir matamatiksel fonksiyon felan varmıdır, yani Float sahalar bilgisayar tarafından otomatik belli bir standarta getirilirken bir takım sorunlar çıkabiliyormuş ya onunla ilgil bir fonksiyon varmıdır?
Teşekkürler.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

bu konu bir süre önce forumda geçmişti. Yanılmıyorsam @coderlord yazmıştı. Float değerler ile ilgili idi. Arama yaparsan bulursun sanırım.

Kolay gelsin.
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

evet buldum teşekkürederim. :oops:
Volkan KAMADAN
www.polisoft.com.tr
Cevapla