PDA

نسخه کامل مشاهده نسخه کامل : مقايسه دو عدد در دلفي با >



sara_she
02-09-2007, 11:02
سلام

من يه مشكلي پيدا كردم كه نمي دونم چه طور حلش كنم

يه فيلد تو بانك (بانك با اينتربيس طراحي شده) از نوع( numeric(18,0 دارم كه يه عدد توش ريخته شده مثلا 800500

حالا مي خوام كاربر يه عدد رو تو textbox وارد كنه و اين عدد با مقدار درون بانكم چك بشه .كد به صورت زير است:



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

مشكل اينه كه با اينكه من تو بانك 800500 و در textbox عدد 50000رو وارد مي كنم بازم قسمت i:=3 رو اجرا مي كنه

در حالتي كه هر دو مساوي باشند درست عمل مي كنه و i:=2 رو اجرا مي كنه و لي هر كاري مي كنم if اول اجرا نمي شده حتي وقتي جهت علامت رو از كوچكتر به بزرگتر تغيير ميدم بازم if اول كار نميكنه

value1 و value2 از نوع integerهستند.به نظر شما مشكل از كجاست

مرد مباح
02-09-2007, 11:27
value2 رو به صورت زیر اصلاح کن :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Mavix
02-09-2007, 15:45
با سلام

اگه ممکنه بگنی که value1 و value2 از چه نوعی هستن ( مورد شما در تبدیل است).

as13851365
03-09-2007, 10:15
برای مقایسه یا باید از IF های جدا کانه استفاده کنی مانند
IF i< j then
if i>j then
IF i=h then

راهای زیادی وجود داره که بسته به خلاقیت خود می تونید از این راهها استفاده کنید

در ضمن علامت های < و > بیشتر برای اعداد کاربرد دارن و فرقی نمی کنه که اعشاری باشند یا صحیح و....

sara_she
03-09-2007, 10:16
اين كد با كدي كه من نوشتم در جواب تفاوتي نمي كنه . هر دو مقادير درستي رو از بانك مي گيرند . من اينو تست كردم
يعني وقتي برنامه رو با f7 خط به خط اجرا مي كنم هر دو مقادير درستي رو نشون مي دهند هم value1و همvalue2 ولي موقع اجرا نمي دونم چرا ifرو اجرا نمي كنن

هر دو اين متغر ها هم از جنس integer هستند البته longint‌رو هم امتحان كردم مشكلي رو حل نمي كنه

جالب اينه كه حتي اگه علامت رو هم برعكس كنم بازم ifاجرا نمي شه

as13851365
03-09-2007, 10:24
مشکل از IF اول نیست

مشکل از IF دوم است یعنی شما در IF دوم گفتید که اگر مساوی بود I را 2 کنه در غیر این صورت I را 3 کنه

این دستور اشتباه است یعنی IF اول هر چی هم باشه خرابش می کنه

باید دستور را به این صورت بنویسی


if value1 < value2 then
i:=1
else
if value1=value2 then
i:=2
else
i:=3; value>store


امیدوارم که موثر باشه

sara_she
03-09-2007, 13:25
lمشكل از مقدار گيري i‌ نيست . مشكل اينه كه if اول اصلا اجرا نمي شه چه علامت > باشه و چه <
به گفته شما كد رو به صورت زير نوشتم:



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

ولي خوب اين راه حل به مشكل من مربوط نمي شه

Mavix
03-09-2007, 16:38
با سلام

sara_she شما که باز اونی رو که as13851365 گفته رو ننوشتین که مشکلتون حل بشه :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
عین اینو کپی کن.

sara_she
04-09-2007, 09:47
يك دنيا ممنونم
مشكلم حل شد
كاملا گيج شده بودم . آخرشم نفهميدم چرا وقتي خط به خط اجرا مي كردم از روي if‌ اول مي پريد