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 11:46

extended değerde roundto hatası

Mesaj gönderen areyemo »

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
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: extended değerde roundto hatası

Mesaj gönderen ertank »

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 11:46

Re: extended değerde roundto hatası

Mesaj gönderen areyemo »

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