Tüm Platformlar için Hızlı Uygulama Geliştirme Kitap Yayın Süreci
Kitap gözden geçirilmek üzere BTG (Bilgi ve Teknoloji Grubu) 'na gönderildi. 05.10.2018-14:10
BTG (Bilgi ve Teknoloji Grubu) tarafından iki sayfalık bir reklam tasarımı bekleniyor. 08.10.2018 - 15:30
Kitap basım talebi değerlendirilmek üzere matbaaya bildirildi. Matbaadan basım süreci hakkında bilgi bekleniyor. 15.10.2018 - 15:34
Kitap 1.000 adet basım talebi ile matbaaya gönderildi. 16.10.2018 - 16:50

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Tam veya küsuratlı sayı
#1
Selam;

Toplama ve çıkarma işlemi yapmam gerek fakat sayı tam veya küsuratlı olabilir.

Örnek: 125 + 150 = 275
Örnek: 1.250 + 1.500 = 1.275 çözümü için nasıl bir yol izleyebilirim? 


var
  sayi1, sayi2, fark: integer;
begin
  try
    sayi1 := StrToInt(EditAlis.Text);
    sayi2 := StrToInt(EditSatis.Text);
    fark := sayi1 - sayi2;
    ShowMessage(IntToStr(fark));
  except
    TextUrun.Text := 'Hatalı sayı girişi yaptınız.';
  end;
end;
Cevapla
#2
Merhaba,
Sayı ve sonuç değişkenleriniz, double veri tipinde olmalıdır.

var
 sayi1, sayi2, fark: double;
begin
 try
   sayi1 := StrToFloat(EditAlis.Text);
   sayi2 := StrToFloat(EditSatis.Text);
   fark := sayi1 - sayi2;
   ShowMessage(FloatToStr(fark));
 except
   TextUrun.Text := 'Hatalı sayı girişi yaptınız.';
 end;
end;

Bu arada; 1.250 + 1.500 = 2.75 eder. Smile
Delphi Can'dır!
WWW
Cevapla
#3
Para işleri olursa Currency daha doğru olur gibi

CurrToStr kullanabiliriz
Cevapla
#4
(22-05-2017, Saat: 22:45)CaglarCoskun Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlPara işleri olursa Currency daha doğru olur gibi

CurrToStr kullanabiliriz


CurrToStr de denedim FloatToStr de ama bence ikisi de hatalı sonuç veriyor.

1,250 TL ye aldığım ürünü 2,250 TL ye sattığımda çıkması gereken rakam 1000 TL olması yazım fakat 1 olarak çıkıyor.  Blush


procedure TForm2.EditSatisExit(Sender: TObject);
var
  TL1, TL2: Double;
begin
  try
    if (Length(EditAlis.Text) > 0) and (Length(EditSatis.Text) > 0) then
    begin
      if EditAlis.Text < EditSatis.Text then
      begin
        TL1 := StrToFloat(EditAlis.Text);
        TL2 := StrToFloat(EditSatis.Text);
        EditKar.Text := FloatToStr((TL2 - TL1));
      end;
    end;
  except
    TextUrun.Text := 'Hatalı sayı girişi yaptınız.';
  end;
end;
Cevapla
#5
(22-05-2017, Saat: 23:54)dilo Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(22-05-2017, Saat: 22:45)CaglarCoskun Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlPara işleri olursa Currency daha doğru olur gibi

CurrToStr kullanabiliriz


CurrToStr de denedim FloatToStr de ama bence ikisi de hatalı sonuç veriyor.

1,250 TL ye aldığım ürünü 2,250 TL ye sattığımda çıkması gereken rakam 1000 TL olması yazım fakat 1 olarak çıkıyor.  Blush

bence siz karıştırıyorsunuz 1250 den 1,250 çıkarırsanız 1248,75 sonucu çıkar karıştırdığınız nokta ise sayıyı formatlama kısmı biz rahat okuyabilelim diye o formatlama var bin iki yüz eli TL 1250 TL olarak saklanır çok kullandığımız şekilde gösterimde formatlarsak eğer 1250,00 TL şeklinde formatlanır 100 tl lik bir malın üzerine %25 kar koyarken 100*1,25 ile çarparız 100*1,2500000000000 ile de çarpsanız sonuç değişmez 125 çıkar. edite sayıyı yazarken sadece küsüratlı ise , (virgül) kullan değilse kullanma daha rahat anlarsın.

“Do. Or do not. There is no try.”
Cevapla
#6
Merhaba
ondalık/binlik ayırıcından kaynaklanıyordur
muhtemelen sizin ondalık ayırıcanız virgül'dür. bölgesel ayarlardan kontrol ediniz.
aynı rakamı girerken binlik ayıraç girmeyin, girmeniz gerekiyorsa nokta ile girin.

SysUtils'deki TFormatSettings bir inceleyin
gerekirse binlik ve ondalık ayıraçlarını değiştirebilirsiniz.
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Grid veya StringGrid Hücre Renklendirme burakb44 3 451 17-03-2018, Saat: 09:22
Son Yorum: burakb44
  Delphi Android Sayı Karmaşası [Çözüldü] codder71 2 443 12-01-2018, Saat: 15:54
Son Yorum: codder71
  Thread kullanmadan veya IdThreadComponent ile AniIndicator kullanımı hk. pro_imaj 15 1.993 13-10-2017, Saat: 10:29
Son Yorum: pro_imaj
  Sayı Eşleştirme Oyunu Fesih ARSLAN 0 1.724 25-07-2016, Saat: 21:47
Son Yorum: Fesih ARSLAN



Konuyu Okuyanlar: 1 Ziyaretçi