delphi4arab منتديات دلفي للعرب
تقريب العدد 999.999 الى 1000 عن طريق جمل sql مع العلم بان الرقم الكسري في تزايد - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : تقريب العدد 999.999 الى 1000 عن طريق جمل sql مع العلم بان الرقم الكسري في تزايد (/showthread.php?tid=5978)



تقريب العدد 999.999 الى 1000 عن طريق جمل sql مع العلم بان الرقم الكسري في تزايد - اشرف الاوجلي - 27-02-2014

مع العلم بان الرقم الكسري في تزايد يعني 1499.999 المراد تقريبها الى 1500


تقريب العدد 999.999 الى 1000 عن طريق جمل sql مع العلم بان الرقم الكسري في تزايد - Lam.Abdeldjalil - 03-03-2014

السلام عليكم

ما محرك قاعدة البيانات المستعمل ؟
على ما أظن أغلب المحركات تدعم ROUND
مثال
كود :
SELECT ROUND(FieldName,0) AS RoundedFieldName FROM TableName;
بالتوفيق


تقريب العدد 999.999 الى 1000 عن طريق جمل sql مع العلم بان الرقم الكسري في تزايد - اشرف الاوجلي - 04-03-2014

ولكن قد جربت هذا ولم ينجح
فانا لدي منظومة ماليه تقوم بقسمة مثلا 1000 دينار على 4100 شخص كي تعطيني النتيجة قيمة سهم كل شخص
ثم اقوم بضرب هذه الاسهم على كل قروب مقسم على 1000 فاتظهر لي النتيجة كما في الاله الحاسبة ولكن حين جمع القيم الاحظ بان المجموع ليس 1000 بل 999.128 فكيف اقرب هذا الرقم او ما يليه من عمليات حسابية كي يكون الناتج 100+500+2000 وهكذا دون نقص او كسور


تقريب العدد 999.999 الى 1000 عن طريق جمل sql مع العلم بان الرقم الكسري في تزايد - makhlouf - 04-03-2014

أخي جرب استعمال الدالة FormatFloat مثال
edit4.Text:=FormatFloat('0.00',strtofloat(edit3.text));

بالتوفيق


تقريب العدد 999.999 الى 1000 عن طريق جمل sql مع العلم بان الرقم الكسري في تزايد - Lam.Abdeldjalil - 04-03-2014

السلام عليكم
إقتباس : ولكن قد جربت هذا ولم ينجح
ضع المحاولة إذا أمكن


تقريب العدد 999.999 الى 1000 عن طريق جمل sql مع العلم بان الرقم الكسري في تزايد - اشرف الاوجلي - 05-06-2014

كود :
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 وكسور
فكيف اجعلها تخرج مظبوطة


تقريب العدد 999.999 الى 1000 عن طريق جمل sql مع العلم بان الرقم الكسري في تزايد - S.FATEH - 05-06-2014

السلام عليكم النمط Float ليس لديه القدرة على التقريب جرب استخدام StrToCurr/Currency/AsCurrency بدلا من ذلك و رد لنا الخبر


تقريب العدد 999.999 الى 1000 عن طريق جمل sql مع العلم بان الرقم الكسري في تزايد - اشرف الاوجلي - 09-06-2014

شكرا لك على الاهتمام
ولكن قد جربت ذلك ولم ينج الامر
فانا عند عرض التقرير تخرج لي القيمة اما بزيادة كسر او نقص كسر
وما ارغبه تخرج لي القيمة صحيحة