parasal işlemler

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Cevapla
osm
Üye
Mesajlar: 2
Kayıt: 04 May 2020 03:04

parasal işlemler

Mesaj gönderen osm »

Merhaba ;
yaptığım projede display format #,###.00 olarak ayarladım sql veritabanında decimal(18,2) bu alana kdv hesaplatmak istiyorum fakat fiyat 1000 tl üzerine çıktığı zaman ( '2.5503,55' is not a valid floating point value) şeklinde hata alıyorum projede.
Kodlar;

procedure Tfrmstok.DBEdit6KeyPress(Sender: TObject; var Key: Char);
var
f1:real;
kdv:real;

begin

f1:=StrToFloat(DBEdit6.Text);
if dbComboBox1.Text = '18' then kdv:=f1*1.18;
if dbComboBox1.Text = '8' then kdv:=f1*1.08;
if dbComboBox1.Text = '1' then kdv:=f1*1.01;
Label14.Caption:=FloatToStr(kdv);

Nerede hata yapıyorum acaba yardımcı olabilirmisiniz?
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: parasal işlemler

Mesaj gönderen mkysoft »

Sorununuz dil ayarları ile ilgili. Türkçe'de binlik ayracı . iken, ingilizcede ,.
osm
Üye
Mesajlar: 2
Kayıt: 04 May 2020 03:04

Re: parasal işlemler

Mesaj gönderen osm »

Bölgesel dil ayarlarını da değiştirerek denedim ama aynı sorun devam ediyor hocam
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2356
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: parasal işlemler

Mesaj gönderen freeman35 »

Bu işlemi edit üzerinde değilde, TField üzerinde yapman daha mantıklı.
http://docs.embarcadero.com/products/ra ... hange.html
yada TField.OnValidate Event inde

Bir tavsiyemde, text leri koşul olarak kullanmamaya çalış, ve sayısal işlem için stringler üzerinden gitme.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
KoPilot
Üye
Mesajlar: 185
Kayıt: 05 Eki 2007 08:02

Re: parasal işlemler

Mesaj gönderen KoPilot »

Önce hesaplamayı yaptır sonra format yap veya veriyi veritabanından alarak işleme tabi tut.
Dosyalarınızı kendi bulutunuza yedekleyin. Yandex Disk
Eyvallah..
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: parasal işlemler

Mesaj gönderen yusuf simsek »

DBCURRENCYEDIT kullanıp kodu f1:=DBEdit6.Value olarak değiştirirsen

ya da

f1:=StrToFloat(StringReplace( DBEdit6.Text, '.', '', [rfreplaceall] ); olarak değiştirirsen sorun yaşamazsın...

Tedbir amacıyla StrToFloat yerine StrToFloatDef fonksiyonunu kullanabilirsin....


Nacizane tavsiyem BÜYÜK SÖZÜ dinleyip @freeman35 üstadımın da dediği gibi Parasal işlemleri String değerler üzerinden çözmeye çalışma!!!

CurrencyEdit ler kullan...
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
Cevapla