İki faklı sayı
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
İki faklı sayı
Selam.
Elimde iki farklı sayı var biri tam diğeri ondalıklı sayı, noktadan sonrasını nasıl atabilirim, nokta bazen 1.7 gibi de oluyor...
if '3' <= '13.250' then
Elimde iki farklı sayı var biri tam diğeri ondalıklı sayı, noktadan sonrasını nasıl atabilirim, nokta bazen 1.7 gibi de oluyor...
if '3' <= '13.250' then
- greenegitim
- Üye
- Mesajlar: 713
- Kayıt: 28 Nis 2011 10:33
- Konum: İstanbul
- fesiharslan
- Üye
- Mesajlar: 591
- Kayıt: 20 Eki 2006 11:37
- Konum: Erzurum
- İletişim:
Re: İki faklı sayı
Merhaba;
Amacınız sayıyı yuvarlayarak kullanmaksa; Ceil, Round veya Floor fonksiyonları yetecektir.
Sayının doğrudan tam sayı kısmını almak isterseniz Tunc veya Int fonksiyonlarını kullanabilirsiniz.
Olması gereken;
Veya
Not: Yukarıdaki matematiksel fonksiyonları kullanabilmek için Uses bölümüne System.Math referansını ekleyin.
İyi geceler...
Amacınız sayıyı yuvarlayarak kullanmaksa; Ceil, Round veya Floor fonksiyonları yetecektir.
Kod: Tümünü seç
Sayı:=Ceil(-13.8); // Sayı= -13 olur.
Sayı:=Ceil(13.8); // Sayı=14 olur.
Sayı:=Ceil(-13.0); // Sayı= -13 olur.
Sayı:=Floor(-13.8); // Sayı= -13 olur.
Sayı:=Floor(13.8); // Sayı=13 olur.
Sayı:=Floor(-13.0); // Sayı= -13 olur.
Sayı:=Round(12.75); // Sayı=13 olur.
Kod: Tümünü seç
Sayı:=Trunc(13.75); // Sayı=13 olur.
Sayı:=Int(13.75); // Sayı=13 olur.
Fakat yukarıdaki kod yapısında string bir karşılaştırma yapmışız. Kullanmış olduğunuz tek tırnak ( ' ) işareti sayısal bir karşılaştırma yapmayacaktır.Dostk yazdı:Selam.
Elimde iki farklı sayı var biri tam diğeri ondalıklı sayı, noktadan sonrasını nasıl atabilirim, nokta bazen 1.7 gibi de oluyor...
if '3' <= '13.250' then
Olması gereken;
Kod: Tümünü seç
if 3 <= Ceil(13.250) then
Kod: Tümünü seç
if 3 <= Trunc(13.250) then
İyi geceler...
Re: İki faklı sayı
Selamlar; İş yoğunluğundan bir süre foruma giriş yapamadım, bugün biraz fırsat bulabildim.
Sayın fesiharslan resmen bu sorun kabusum oldu, web site üzerinden tüm verileri string olarak alıyorum.
Sayın fesiharslan resmen bu sorun kabusum oldu, web site üzerinden tüm verileri string olarak alıyorum.
Kod: Tümünü seç
if BugununTarihi = SonEklenenBilgiler.Tarih then
begin
Yenikayitvarsabildir(SonEklenenBilgiler.Fiyati); // Örnek: 13.75
Kod: Tümünü seç
function Yenikayitvarsabildir(Number: String): Real;
begin
Form1.Button2.Text := IntToStr(Trunc(Number)); // Bir türlü 13.75'i 13 olarak alamıyorum
end;
- fesiharslan
- Üye
- Mesajlar: 591
- Kayıt: 20 Eki 2006 11:37
- Konum: Erzurum
- İletişim:
Re: İki faklı sayı
Merhaba;
FormatSettings record tipi ile tüm yerel sistem formatlarını biçimlendirebilirsiniz.
FormatSettings'i kullanabilmek için Uses bölümüne SysUtils referansını eklemeniz gerekiyor.
Kullanımı:
Not: Sayıyı yuvarlayarak almak isterseniz, Trunc fonksiyonu yerine Round fonksiyonunu kullanın.
İyi çalışmalar...
FormatSettings record tipi ile tüm yerel sistem formatlarını biçimlendirebilirsiniz.
FormatSettings'i kullanabilmek için Uses bölümüne SysUtils referansını eklemeniz gerekiyor.
Kod: Tümünü seç
Uses
System.SysUtils;
Kod: Tümünü seç
function Yenikayitvarsabildir(Number: String): Real;
var
Sayi: Real;
begin
FormatSettings.DecimalSeparator := '.';
Sayi:=StrToFloat(Number);
FormatSettings.DecimalSeparator := ',';
Result:= Sayi;
end;
Kod: Tümünü seç
Form1.Button2.Text := IntToStr(Trunc(Yenikayitvarsabildir(SonEklenenBilgiler.Fiyati)));
İyi çalışmalar...
Re: İki faklı sayı
Çok teşekkürler fesiharslan bey..
Re: İki faklı sayı
Selam;
Ondalıklı sayıdan noktadan sonra ki sayıları atmak istiyorum, tek alan olunca sorun yok fakat birden fazla alandan bir türlü atamadım, function bu işlemi nasıl yaptırabilirim?
Ondalıklı sayıdan noktadan sonra ki sayıları atmak istiyorum, tek alan olunca sorun yok fakat birden fazla alandan bir türlü atamadım, function bu işlemi nasıl yaptırabilirim?
Kod: Tümünü seç
function Kontrol(Number, Number2: String): Real;
var
Satis, Satis2: Real;
begin
FormatSettings.DecimalSeparator := '.';
Satis:= StrToFloat(Number);
FormatSettings.DecimalSeparator := ',';
Result := Satis;
FormatSettings.DecimalSeparator := '.';
Satis2:= StrToFloat(Number2);
FormatSettings.DecimalSeparator := ',';
Result := Satis2;
Showmessage(IntToStr(Trunc(Satis)));
Showmessage(IntToStr(Trunc(Satis2)));
end;
- fesiharslan
- Üye
- Mesajlar: 591
- Kayıt: 20 Eki 2006 11:37
- Konum: Erzurum
- İletişim:
Re: İki faklı sayı
Merhaba;hido yazdı:Selam;
Ondalıklı sayıdan noktadan sonra ki sayıları atmak istiyorum, tek alan olunca sorun yok fakat birden fazla alandan bir türlü atamadım, function bu işlemi nasıl yaptırabilirim?
Kod: Tümünü seç
function Kontrol(Number, Number2: String): Real; var Satis, Satis2: Real; begin FormatSettings.DecimalSeparator := '.'; Satis:= StrToFloat(Number); FormatSettings.DecimalSeparator := ','; Result := Satis; FormatSettings.DecimalSeparator := '.'; Satis2:= StrToFloat(Number2); FormatSettings.DecimalSeparator := ','; Result := Satis2; Showmessage(IntToStr(Trunc(Satis))); Showmessage(IntToStr(Trunc(Satis2))); end;
Aşağıdaki gibi kullanabilirsiniz.
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
Satis, Satis2: Real;
begin
FormatSettings.DecimalSeparator := ',';
Satis := 102.55;
Satis2 := 510.99;
Showmessage(IntToStr(Trunc(Satis))); //Sonuç=102
Showmessage(IntToStr(Trunc(Satis2))); //Sonuç=510
end;