Currency Tipinde Bölme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
webaytek
Üye
Mesajlar: 377
Kayıt: 23 Haz 2004 10:58

Currency Tipinde Bölme

Mesaj gönderen webaytek »

Sizden isteğimi kısaca anlatayım. Çözüm yolu benim umduğumun dışında da olabilir.
Geçenlerde bitirdiğim bi programcık var... Döviz Kurlarını http://www.tcmb.gov.tr/kurlar/today.html adresinden indirip tüm kurları alıyor. Bunların değerlerini Tlistview yardımıyla gösteriyorum...
Şimdi siteden gelen kur verileri örneğin 1 USD = 1.3944 YTL olarak geliyor. Ben bunu ' YTL' ye kadar olan bölümünü trim ettirip string olarak tuttuktan sonra bunlarla bölme işlemi yapmam lazım. Beceriksizlikten midir yoksa imkansızlığından mıdır bilmiyorum strtofloat işimi görmedi. ben de strtodouble diye bi fonksiyon yazdım. Buraya kadar herşey güzel...
string olarak gelen "1.3944 YTL" yi double olarak "1,3944" alıyorum.
Sıkıntı burdan sonra başlıyor... EUROnun YTL karşılığını (1,8045) USDnin YTL karşılığına (1,3944); bölmem icabediyor ancak 1,8045 div 1,3944 yaptırırken

Kod: Tümünü seç

floattostr(strtodouble(euro) div strtodouble(usd))
satırında
compiler yazdı:[Error] Unit1.pas(297): Operator not applicable to this operand type
hatası veriyor.

bana lazım olan şey şu : "1,8045 YTL" stringini "1.3944 YTL" string'ine bölmek ve sonucu da string olarak edit1.text e yazdırmak. ŞİMDİDEN KOLAY GELSİN + Teşekkürler

Kod: Tümünü seç

function strtodouble(str : string) : double;
var x,a:string;
i:integer;
begin
x :='';
a :='';
for i:=1 to length(str) do
  begin
  a := copy(str,i,1);
  if a = '.' then a := ',';
  x := x + a;
  end;
result := strtofloat(x);
end;
ibrahimcoban
Üye
Mesajlar: 163
Kayıt: 11 Eki 2005 10:44
İletişim:

Mesaj gönderen ibrahimcoban »

floattostr(strtodouble(euro) / strtodouble(usd))

div tam sayı bölüm işleminde kullanılır. integer gibi.
Kullanıcı avatarı
webaytek
Üye
Mesajlar: 377
Kayıt: 23 Haz 2004 10:58

Mesaj gönderen webaytek »

Valla çözümü için de o kadar fonksiyon aradım. Basit noktalarda çuvalladığım bir daha ortaya çıktı.
Saolasın @ibrahimcoban
Cevapla