yuvarlama sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

yuvarlama sorunu

Mesaj gönderen erdogan_ozkaya »

Arkadaşlar,

böyle bir numara "0,000500" girmeye çalıştığımda "5E-5" işliyor field alanı float.


teşekkürler
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: yuvarlama sorunu

Mesaj gönderen fesiharslan »

Merhaba;
Float tipini FloatToStrF fonksiyonu ile istediğiniz gibi formatlayabilirsiniz.

Kod: Tümünü seç

var
  BirSayi: real;
begin
  Memo1.Lines.Clear;
  BirSayi := 0.000500;
  with Memo1.Lines do
  begin
    Add('TFloatFormat.ffFixed : ' + FloatToStrF(BirSayi,
      TFloatFormat.ffFixed, 12, 6));
    Add('TFloatFormat.ffGeneral : ' + FloatToStrF(BirSayi,
      TFloatFormat.ffGeneral, 12, 6));
    Add('TFloatFormat.ffExponent : ' + FloatToStrF(BirSayi,
      TFloatFormat.ffExponent, 12, 6));
    Add('TFloatFormat.ffNumber : ' + FloatToStrF(BirSayi,
      TFloatFormat.ffNumber, 12, 6));
    Add('TFloatFormat.ffCurrency : ' + FloatToStrF(BirSayi,
      TFloatFormat.ffCurrency, 12, 6));
  end;
end;
Ekran Çıktısı:
Resim

İyi çalışmalar
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: yuvarlama sorunu

Mesaj gönderen erdogan_ozkaya »

Cevabınız için teşekkür ederim fakat anlamadım bunu ? :) nere ekleyeceğim grinde mi ?
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: yuvarlama sorunu

Mesaj gönderen fesiharslan »

Bu sadece bir örnekti. Mantık olarak veriyi formatlamak gerekiyor. Grid veya herhangi bir nesnenin Display veya DisplayFormat özelikleri vardır. Bu özellikleri kullanarak verinizi maskeleyebilir veya formatlayabilirsiniz.
Gridin ilgili sütununun veya Field'ın DisplayFormat özelliğine 0.000000 yazarak, aynı sonucu elde edebilirsiniz.

Örnek bir uygulama;

Veri Tabanı:

Resim

Design Time ekran görüntüsü:

Resim

Run Time ekran görüntüsü:

Resim

Kod: Tümünü seç

procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
  Field: TField; State: TGridDrawState);
begin
  if Field.DisplayName = 'BIR_SAYI' then
    TFloatField(Field).DisplayFormat := '#,##0.000000';
end;
Cevapla