المشاركات : 5
المواضيع 2
:
: 0
الإنتساب : Apr 2013
مع العلم بان الرقم الكسري في تزايد يعني 1499.999 المراد تقريبها الى 1500
المشاركات : 842
المواضيع 49
:
: 65
الإنتساب : Jun 2010
السلام عليكم
ما محرك قاعدة البيانات المستعمل ؟
على ما أظن أغلب المحركات تدعم ROUND
مثال
كود :
SELECT ROUND(FieldName,0) AS RoundedFieldName
FROM TableName;
بالتوفيق
المشاركات : 5
المواضيع 2
:
: 0
الإنتساب : Apr 2013
ولكن قد جربت هذا ولم ينجح
فانا لدي منظومة ماليه تقوم بقسمة مثلا 1000 دينار على 4100 شخص كي تعطيني النتيجة قيمة سهم كل شخص
ثم اقوم بضرب هذه الاسهم على كل قروب مقسم على 1000 فاتظهر لي النتيجة كما في الاله الحاسبة ولكن حين جمع القيم الاحظ بان المجموع ليس 1000 بل 999.128 فكيف اقرب هذا الرقم او ما يليه من عمليات حسابية كي يكون الناتج 100+500+2000 وهكذا دون نقص او كسور
المشاركات : 211
المواضيع 16
:
: 8
الإنتساب : Jan 2012
أخي جرب استعمال الدالة FormatFloat مثال
edit4.Text:=FormatFloat('0.00',strtofloat(edit3.text));
بالتوفيق
المشاركات : 842
المواضيع 49
:
: 65
الإنتساب : Jun 2010
السلام عليكم
إقتباس : ولكن قد جربت هذا ولم ينجح
ضع المحاولة إذا أمكن
المشاركات : 5
المواضيع 2
:
: 0
الإنتساب : Apr 2013
كود :
procedure TForm5.Button6Click(Sender: TObject);
begin
if (Edit7.Text <>'') and (Edit8 .Text <>'') then
Edit9 .Text:=Formatfloat('0.000', (strToFloat(Edit7 .Text)/strToFloat(Edit8 .Text)));
end;
مثلا 500 كقيمة مستقطعه قسمة 4000 شخص فالناتج هو 0.125
ثم ناخذ 0.125 ونضربها في 4000 شخص ولكن على مجموعات اي 50 سجل تكون الحلقة
كود :
procedure TForm5.BitBtn1Click(Sender: TObject);
var
sql1, i_not,count_hala:string;
begin
if (ComboBox3 .Text ='')then exit;
if (ComboBox3 .Text <>'')then
ProgressBar1 .Visible :=True ;
sql1:='';
sql1:='SELECT Count(fard.hala_fard) AS Count_hala_fard';
sql1:=sql1+' FROM fard';
sql1:=sql1+' WHERE (((fard.hala_fard)="م"))';
dm.q_colection.Close;
dm.q_colection.SQL.Clear;
dm.q_colection.SQL.Add(sql1);
dm.q_colection.Open;
count_hala:= dm.q_colection.fieldbyname('Count_hala_fard').AsString;
sql1:='';
sql1:='SELECT bet.name_bet,bet.id ,Count(fard.hala_fard) AS Count_hala_fard';
sql1:=sql1+' FROM bet INNER JOIN fard ON bet.id = fard.id';
sql1:=sql1+' WHERE (((fard.hala_fard)="م")) ';
sql1:=sql1+' GROUP BY bet.name_bet,bet.id';
dm.q_colection.Close;
dm.q_colection.SQL.Clear;
dm.q_colection.SQL.Add(sql1);
dm.q_colection.Open;
IF Edit3 .Text <>'' then
if not dm .hesbat .Locate('it',edit3.Text ,[])then
Begin
with dm do
begin
nots.Locate ('note',ComboBox3 .Text,[loPartialKey]);
i_not:= notsit.AsString;
q_colection.First;
while not q_colection.Eof do
Begin
ProgressBar1 .Position :=1;
hesbat.Append;
hesbatit.AsString:=i_not;
hesbatid.AsString:=q_colection.Fieldbyname('id').AsString;
hesbatno_fard.AsString:=q_colection.fieldbyname('Count_hala_fard').AsString;
hesbaton_sahm.Value:=strToFloat(Edit9 .Text);
hesbatno_sum.Value:=q_colection.fieldbyname('Count_hala_fard').Value*strToFloat(Edit9 .Text);
hesbatdate .Value :=DateTimePicker1.Date ;
hesbatkolea .Value :=(hesbatno_sum .Value )+(hesbatno_duon .Value )-(hesbatalmdfoa .Value );
hesbat.Post;
ProgressBar1 .Position :=100;
q_colection.Next;
end;// end while
end;// end with
ComboBox3 .Text :='';
Edit8 .Text :='';
Edit9 .Text :='';
Edit7 .Text :='';
Edit3 .Text :='';
ProgressBar1 .Visible :=False ;
ShowMessage('تمت اضافة الملاحظة على جميع البيوت');
end
else
ShowMessage('تم اضافة هده الملاحظة مسبقاً');
ComboBox3 .Text :='';
Edit8 .Text :='';
Edit9 .Text :='';
Edit7 .Text :='';
Edit3 .Text :='';
ProgressBar1 .Visible :=False ;
end;
ولكن عند جمع حاصل الضرب يخرج لي المبلغ ناقص او زايد
اي 500 تخرج 400 وكسور او 500 وكسور
فكيف اجعلها تخرج مظبوطة
المشاركات : 975
المواضيع 50
:
: 218
الإنتساب : Feb 2008
05-06-2014, 10:33 AM
(آخر تعديل لهذه المشاركة: 05-06-2014, 10:38 AM بواسطة S.FATEH.)
السلام عليكم النمط Float ليس لديه القدرة على التقريب جرب استخدام StrToCurr/Currency/AsCurrency بدلا من ذلك و رد لنا الخبر
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
المشاركات : 5
المواضيع 2
:
: 0
الإنتساب : Apr 2013
شكرا لك على الاهتمام
ولكن قد جربت ذلك ولم ينج الامر
فانا عند عرض التقرير تخرج لي القيمة اما بزيادة كسر او نقص كسر
وما ارغبه تخرج لي القيمة صحيحة