parasal değerin son 2 rakamdan sonrasının yuvarlanmaması
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
parasal değerin son 2 rakamdan sonrasının yuvarlanmaması
Arkadaşlar kolay gelsin,
Yapılan bir matematiksel işlemin sonucunda (82,3576470588235) gibi çıkan bir sonuçta ben ,0.00 bu formatlama şeklini kullanıyorum ama forumda bahsedilen tüm formatlama şekillerini kullandım sürekli olan sonuç otomatik olarak (82,36) oluyor 3.değer 5'ten büyük olduğu için yukarı tamamlıyor. Benim istediğim çıkan sonuç neyse virgülden sonra sadece 2 rakamı alması yani (82,35) olarak kalmasını istiyorum bunu kod olarak yada nasıl bir display formatı ile bu şekilde bıraktırırım.
Yardımlarınız için şimdiden çok tşk ederim. Herkese kolay gelsin...
Yapılan bir matematiksel işlemin sonucunda (82,3576470588235) gibi çıkan bir sonuçta ben ,0.00 bu formatlama şeklini kullanıyorum ama forumda bahsedilen tüm formatlama şekillerini kullandım sürekli olan sonuç otomatik olarak (82,36) oluyor 3.değer 5'ten büyük olduğu için yukarı tamamlıyor. Benim istediğim çıkan sonuç neyse virgülden sonra sadece 2 rakamı alması yani (82,35) olarak kalmasını istiyorum bunu kod olarak yada nasıl bir display formatı ile bu şekilde bıraktırırım.
Yardımlarınız için şimdiden çok tşk ederim. Herkese kolay gelsin...
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
Merhaba,
uses bölümüne math ekledikten sonra,
Fonksiyonunu tanımlayın,
Kullanımı şöyle,
Kolay gelsin.
uses bölümüne math ekledikten sonra,
Kod: Tümünü seç
function Yuvarla(x: Extended; d: Integer): Extended;
var
n: Extended;
begin
n := Power(10, d);
x := x * n;
Result := (system.Int(x) + system.Int(Frac(x) * 2)) / n;
end;
Kullanımı şöyle,
Kod: Tümünü seç
YuvarlanmisDeger:= Yuvarla (YuvarlanacakSayi , 2);
// Burada fonksiyona geçtiğim ikinci parametre yani 2 değeri virgülden sonra kaç haneye yuvarllanacağını belirtir.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Volkan bey ilginiz için çok tşk ederim,
Dediklerinizi aynen yaptım 82,36'dan sonraki değerleri göstermiyor sonuçta ama benim istediğim değerin hiç bir şekilde yuvarlanmadan 82,35 kalması ilk çıkana değer (82,3576470588235) buydu fonksiyondan sonra 82,36 amaç 82,35 kalması yani hiç bir şekilde değişikliğe uğramadan sadece sondaki değerlerin yok edilmesi.
Yardımlarınız için çok tşk ederim.
Dediklerinizi aynen yaptım 82,36'dan sonraki değerleri göstermiyor sonuçta ama benim istediğim değerin hiç bir şekilde yuvarlanmadan 82,35 kalması ilk çıkana değer (82,3576470588235) buydu fonksiyondan sonra 82,36 amaç 82,35 kalması yani hiç bir şekilde değişikliğe uğramadan sadece sondaki değerlerin yok edilmesi.
Yardımlarınız için çok tşk ederim.
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
Merhaba,
Ozaman şöyle bir fonksiyon işinizi görür,
Ozaman şöyle bir fonksiyon işinizi görür,
Kod: Tümünü seç
function SonIkiHaneAl(Deger: Extended): Extended;
var
SayiString,
Tam,Ondalik:String;
PointPos:Integer;
begin
SayiString:=FloatToStr(Deger);
PointPos:=Pos(DecimalSeparator,SayiString);
if PointPos=0 then Result:=Deger else
begin
Tam:=Copy(SayiString,1,PointPos-1);
Ondalik:=Copy(SayiString,PointPos+1, Length(SayiString)-PointPos);
Ondalik:=Copy(Ondalik,1,2);
Result:=StrToFloat(Tam+DecimalSeparator+Ondalik);
end;
end;
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Kod: Tümünü seç
function Sadele(const R:Real):Real;
begin
Result:=int(R*100)/100;// veya Result:=Trunc(R*100)/100;
end;
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Merhaba,
Demokraside çareler tükenmiyor.
Bir yeşillik te bizden olsun.
****** uses math eklemeyi unutmayın.
Kolay gelsin.
Demokraside çareler tükenmiyor.

Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
x:real;
begin
setroundmode(rmtruncate);
x:=82.3576470588235;
x:=roundto(x,-2);
label1.Caption:=floattostr(x);
// labeldaki rakam görünmüyor ama ben 82.35 görüyorum :)
end;
Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Logo Go özel eğitim, web tasarım, teknik servis