Sorun yaşadığım noktalardan birisiydi virgülden sonraki kaç sayının dikkate alınacağı ve virgüllü kısmın yuvarlanması durumu aşağıdaki hazır fonksiyonu kullanrak çözdüm.
Kod: Tümünü seç
function R2(const AValue : extended ; const ADigit : TRoundToRange) :
extended ;
var X : extended ; i : integer ;
begin
X := 1.0 ;
for i := 1 to Abs(ADigit) do X := X * 10 ;
if ADigit<0
then Result := Round(AValue * X) / X
else Result := Round(AValue / X) * X ;
end;
Kod: Tümünü seç
type TRoundToRange = -37..37;
Örn:
Kod: Tümünü seç
r2(2.0736,-2); //2.07 sonucunu döndürür.