ورود

View Full Version : عدد تقسیم بر صفر



davoodmz
شنبه 01 اردیبهشت 1386, 10:05 صبح
با سلام خدمت دوستان
من با جستجو به نتیجه نرسیدم . من میخواهم که عدد داخل ادیت 1 را به ادیت 2 تقسیم کنم و حاصل را در ادیت3 نشان دهم مانند کند زیر:

var
A: DOUBLE;
begin
Try
A := STRTOFLOAT(EDIT1.Text) / STRTOFLOAT(EDIT2.Text);
EDIT3.Text:=FLOATTOSTR(A);
except
on E : Exception do
ShowMessage(' error');
end;

میدانیم که وقتی که عدد داخل ادیت 2 صفر باشد خطای تقسیم برصفر میدهد و این خطا را کنترل هم کردیم همانطور که در کد مشهود است ولی خطای سیستمی ظاهر میشود بعد EXPETION عمل میکند. در کد بالا من میخواهم که وقتی با خطا مواجه شد هیچ پیغامی ندهد و ادیت 3 را با صفر پر کند.
با تشکر از همه دوستان
داود

ghabil
شنبه 01 اردیبهشت 1386, 11:38 صبح
var
A: DOUBLE;
begin
Try
A := STRTOFLOAT(EDIT1.Text) / STRTOFLOAT(EDIT2.Text);
EDIT3.Text:=FLOATTOSTR(A);
except
Edit3.Text := '0';
end;

davoodmz
شنبه 01 اردیبهشت 1386, 11:56 صبح
با سلام
جناب آقای کوشا
قبل از اجرای exeption خطای سیستمی زیر ظاهر می‌شود(به پیوست) و سپس exeption ظاهر میشود.

با تشکر
داود

dkhatibi
شنبه 01 اردیبهشت 1386, 12:38 عصر
به طور پیش فرض کامپایلر هنگام ترجمه و زمان اجرا خطا رو اعلام می کند. اما اگر فایل EXE برنامه رو اجرا کنید می بینید خطایی دیده نشده و پیام مورد نظر شما نمایش داده می شود.

اَرژنگ
شنبه 01 اردیبهشت 1386, 14:01 عصر
میدانیم که وقتی که عدد داخل ادیت 2 صفر باشد خطای تقسیم برصفر میدهد و این خطا را کنترل هم کردیم همانطور که در کد مشهود است ولی خطای سیستمی ظاهر میشود بعد EXPETION عمل میکند. در کد بالا من میخواهم که وقتی با خطا مواجه شد هیچ پیغامی ندهد و ادیت 3 را با صفر پر کند.
با تشکر از همه دوستان
داود
دلیل اینکار چی است؟ بر چه اصلی تقسیم بر صفر را صفر حساب میکنید؟ از لحاظ ریاضی اینکار کاملاً اشتباه است .

dkhatibi
شنبه 01 اردیبهشت 1386, 14:54 عصر
دلیل اینکار چی است؟ بر چه اصلی تقسیم بر صفر را صفر حساب میکنید؟ از لحاظ ریاضی اینکار کاملاً اشتباه است .

بعید می دونم ایشون این مطلب را ندونن. چراکه خودشون می دونن با خطا مواجه می شن.
به نظر من منظور ایشون بیشتر رفع خطا بوده و کنترل خطاست.

SYNDROME
شنبه 01 اردیبهشت 1386, 23:24 عصر
با سلام
می توانی در منوی Tools->Debuger Option تیک مربوط به Stop On Delphi Exception را برداری دیگر Bug نمایش داده نمی شود و Except اجرا می شود.

davoodmz
یک شنبه 02 اردیبهشت 1386, 10:14 صبح
با سلام خدمت دوستان
کاربر محترم dkhatibi : مشکل حل شد بعد از کمپایل خطا نمی‌دهد . همین جواب من بود با تشکر
کاربر محترم آرژنگ : با تشکر دلیل این کار: یک کوئری که چندین فیلد مختلف را با شرایط خاص خود count میگیرد و نسبت به جمع کل درصد می‌گیرد حالا اگر شمارش یک فیلدی صفر و جمع کل نیز صفر باشد من میخواستم 0% نمایش داده شود .
کاربر محترم SYNDROME : این گزینه را پیدا نکردم ولی قبلا دربارش شینده بود با تشکر
داود

SYNDROME
یک شنبه 02 اردیبهشت 1386, 20:53 عصر
با سلام
گزینه ای که به شما پیشنهاد دادم با فایل Source مانند Exe برخود می کند و باگهای شما را نمی دهد.
Toolse->Debuger Option->Language Exception
همون پایین اگر نگاه کنی می بینی گزینه Stop On Delphi Exception.
تیکش رو بردار.