Virgülden Sonra Yuvarlama
-
1. yol
function TForm1.GaripYuvarla(sayi: Real): Real;
var
s:string;
VirgulNo:byte;
sonuc:Real;
begin
s:=FloatToStr(sayi);
VirgulNo:=AnsiPos(',',s);
sonuc:=StrToFloat(copy(s,1,VirgulNo+1)); //Virgül+1 basamak alındı
s:=copy(s,VirgulNo+2,1); //yuvarlama buna göre yapılacak
if StrToInt(s)>=5 then sonuc:=Sonuc+0.1;
if StrToInt(s)<5 Then sonuc:=sonuc+0.05;
Result:=sonuc;
end;2.yol
procedure TForm1.Button1Click(Sender: TObject);
var
x : real ;
y :real;
begin
x:=24.499999;
y:=round(x*100)/100;
Edit1.Text:=floattostr(y);
end;sayın müridler bunları buldum araştırmalarım sonucunda ama hiç bi pok anlamadım. hobi olarak uğraşıyorum bi program yazmaya kalkıştım
şincik programda levha ölçüsü var levha ölçüsü edit1 e kalite birim fiyatı edit2 ye yazılcak. edit1*edit2 nin sonucuda label1 e yazılcak. ama ondalıklı fiyat olduğu zaman ondalığın 2 basamağının görünmesini istiyorum. yada yuvarlamasın sadece virgülden sonra 2 basamak görünsün yeter menüden falan ayarlanmazmı bu basit bi şekilde pls
-
uses Math;
var
aNumber: Real;
begin
aNumber := 12345.67;edit1.Text := FormatFloat('#,###', GaripYuvarla(aNumber)); // küsüratları almaz
edit1.Text := FormatFloat('#,###', Floor(GaripYuvarla(aNumber))); //aşağı yuvarlar
edit1.Text := FormatFloat('#,###', Ceil(GaripYuvarla(aNumber))); // yukarı yuvarlar
end;