extended değerde roundto hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
areyemo
Üye
Mesajlar: 2
Kayıt: 13 Haz 2014 10:46

extended değerde roundto hatası

Mesaj gönderen areyemo » 14 Oca 2020 09:57

iyi günler
günlerdir ugrastıgım bir çalışmada extended değer verdiğim değişkenlerin hesplamaları sonucunda elde ettiğim değeri
simpleroundto ile 4 decimel e kadar (crr:=simpleroundto(crr,-4) kodu ile indirgemek istediğimde "invalid floating point operation" hatası veriyor indirgemeden string gride atıp excell dosyasına aktarmaya çalışınca ise "floating point overflow" hatası veriyor. crr hesabında kullanılan tüm değerleri 4 decimel e kadar yuvarlayıp crr hesaplatsam bile crr hesabı içinde exponensiyel hesabı olduğu için crr 4 decimel de kalmıyor.
yardımlarınız için teşekkür ederim.

ertank
Üye
Mesajlar: 1250
Kayıt: 11 Eyl 2015 11:45

Re: extended değerde roundto hatası

Mesaj gönderen ertank » 15 Oca 2020 10:35

Merhaba,

Kullandığınız Delphi sürümünü belirtmemişsiniz. Delphi 10.3.3 ile aşağıdaki şekilde sorunsuz 4 haneye yuvarlama yapabiliyorsunuz

Kod: Tümünü seç

var
  TempExtended: Extended;
  TempString: string;
  TempDouble: Double;
begin
  TempExtended := Pi;
  TempString := TempExtended.ToString();
  TempDouble := TempString.ToDouble(); // burada değer kaybı olabilir. Double ve Extended aynı hassasiyette değiller
  TempDouble := SimpleRoundTo(TempDouble, -4);
  TempString := TempDouble.ToString();
  ShowMessage(TempString);
end;

areyemo
Üye
Mesajlar: 2
Kayıt: 13 Haz 2014 10:46

Re: extended değerde roundto hatası

Mesaj gönderen areyemo » 15 Oca 2020 02:35

ertank merhaba sürüm olarak delphi 7 kullanıyorum belirtmeyi unutmuşum. uyarınız için teşekkür ederim

Cevapla