virgüllü sayı sorunu
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
virgüllü sayı sorunu
var
sayi1,sayi2,bol,sonuc:integer;
kdv1:string;
begin
sayi1:=strtoint(combobox2.Text);
sayi2:=strtoint(edit6.Text);
bol:=100;
sonuc:=muldiv(sayi1,sayi2,bol);
kdv1:=inttostr(sonuc);
edit7.Text:=kdv1;
end;
yukardaki kodlarla iki sayıyı çarpıp üçüncüye böldürüyorum
hata vermeden işlemi yapıyor.
ancak edite sayıyı virgüllü girince (500,25 gibi) hata veriyor
anladığım kadarıyla integer kullandığım için yani tam sayı olayı
sorum şu : integer yerine ne kullanabilirim ve nasıl ceviririm yani string i real'e veya real'i string'e?
sayi1,sayi2,bol,sonuc:integer;
kdv1:string;
begin
sayi1:=strtoint(combobox2.Text);
sayi2:=strtoint(edit6.Text);
bol:=100;
sonuc:=muldiv(sayi1,sayi2,bol);
kdv1:=inttostr(sonuc);
edit7.Text:=kdv1;
end;
yukardaki kodlarla iki sayıyı çarpıp üçüncüye böldürüyorum
hata vermeden işlemi yapıyor.
ancak edite sayıyı virgüllü girince (500,25 gibi) hata veriyor
anladığım kadarıyla integer kullandığım için yani tam sayı olayı
sorum şu : integer yerine ne kullanabilirim ve nasıl ceviririm yani string i real'e veya real'i string'e?
seamoon
- fatihtolgaata
- Üye
- Mesajlar: 382
- Kayıt: 04 Mar 2004 09:46
- Konum: K.çekmece / İstanbul
- İletişim:
evet başka bir değişkenle (extended gibi) çözeceğimi anladım ama anladığım kadarıyla muvdiv fonksiyonu integer kullanıyor.
dolayısıyla sorunu bir türlü aşamadım. bunları nasıl çeviririm.
yapmak istediğim ondalıklı sayıyla matematik işlemi
500,25*250,12/100 gibi
örnek verebilecek, yardım edecek kimse yok mu?
dolayısıyla sorunu bir türlü aşamadım. bunları nasıl çeviririm.
yapmak istediğim ondalıklı sayıyla matematik işlemi
500,25*250,12/100 gibi
örnek verebilecek, yardım edecek kimse yok mu?
seamoon
s.a.
şartmı canım muldiv le yapman.
kolay gelsin
şartmı canım muldiv le yapman.
Kod: Tümünü seç
a:=sayi1*sayi2/sayi3;
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Hocam sorunu ya anlayamadım ya da yanlış anladım. Anladığım kadarıyla şu kadarını yazabilirim...
- Amacın iki sayıyı çarpıp üçüncü sayıya böldürmek ise MulDiv'e ihtiyacın neden olsun ki, direkt kodda çarp ve böl.
- İllaki de fonksiyon kullanıcam dersen aşağıda yeni bir fonksiyon tanımı var. Programına ekle ...
- Kullanımı ise aynı eskisi gibi ama tip olarak Integer değil Extended kullanacaksın. Dolayısı ile StrToInt veya IntToStr yerine FloatToStr veya StrToFloat kullanacaksın...
- Amacın iki sayıyı çarpıp üçüncü sayıya böldürmek ise MulDiv'e ihtiyacın neden olsun ki, direkt kodda çarp ve böl.
- İllaki de fonksiyon kullanıcam dersen aşağıda yeni bir fonksiyon tanımı var. Programına ekle ...
Kod: Tümünü seç
Function MyMulDiv(Sayi1, Sayi2, Sayi3 : Extended):Extended;
begin
Result := Sayi1 * Sayi2 / Sayi3;
end;
Kod: Tümünü seç
var
sayi1, sayi2,
bol, sonuc : Extended;
kdv1 : string;
begin
sayi1 := strtoFloat(combobox2.Text);
sayi2 := strtoFloat(edit6.Text);
bol := 100;
sonuc := Mymuldiv(sayi1, sayi2, bol);
kdv1 := Floattostr(sonuc);
edit7.Text:=kdv1;
end;
En son mrmarman tarafından 21 Ara 2005 10:29 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
mrmcop
çok teşekkür ederim istediğim oldu
ama affına sığınarak bir şey daha
tam olarak yapmak istediğim kdv hesaplamaktı
500,25*18/100 gibi
cevabında yazdığın fonksiyonla bu oldu ama
500,25*18/100'ün sonucunu 90,045 olarak döndürüyo
YKR olayında iki hane var bilindiği üzere ,045 i nasıl yuvarlayabilirim

çok teşekkür ederim istediğim oldu

ama affına sığınarak bir şey daha

tam olarak yapmak istediğim kdv hesaplamaktı
500,25*18/100 gibi
cevabında yazdığın fonksiyonla bu oldu ama
500,25*18/100'ün sonucunu 90,045 olarak döndürüyo
YKR olayında iki hane var bilindiği üzere ,045 i nasıl yuvarlayabilirim



seamoon
- Valla yuvarlama ile hiç uğraşmadım. Kuruguladığım sistem her zaman gerekli yuvarlamayı kendiliğinden yapıyor...
Örnek :
Örnek :
Kod: Tümünü seç
Var
a,b: Extended;
begin
a := 90.045;
b := StrToFloat(FormatFloat('0.00', a));
ShowMessageFmt('%f', [b]);
end;
muldiv iki sayıyı çarpıp üçüncüye bölen bir matematiksel fonksiyoncoderlord yazdı:muldiv nedir yahu?
mesela
muldiv(a,b,c);
dediğimizde (a*b/c) yi sonuç olarak döndürüyor
bu arada mrmcop hocam verdiğiniz örnek dediğiniz gibi yuvarlıyo
Var
a,b: Extended;
begin
a := 90.045;
b := StrToFloat(FormatFloat('0.00', a));
ShowMessageFmt('%f', );
end;
peki
a:=90.045 yerine a:=strtofloat(edit6.text); dediğimde neden hata veriyor?
seamoon