ورود

View Full Version : مقدار یک ادیت تقسیم بر 100؟؟



ms.nazeri
پنج شنبه 17 تیر 1389, 17:34 عصر
سلام ،،، ممنون از دوستانی که لطف میکنن و پاسخ میدن .
روزتون خوش:
شرمنده یه سواله پیشوپاافتاده دارم ؟:ناراحت:

من میخوام مقدار یک ادیت رو که از نوع عدد هست تقسم بر 100 کنم و در ادیت دیگه بریزم . متاسفانه یک ارور کوچیک میده که نمیدونم منظورش چیه؟ این کدی که من به ذهنم رسید:


edit3.text:=strtoint(edit2.text) / 100

MOJTABAATEFEH
پنج شنبه 17 تیر 1389, 18:28 عصر
سلام ،،، ممنون از دوستانی که لطف میکنن و پاسخ میدن .
روزتون خوش:
شرمنده یه سواله پیشوپاافتاده دارم ؟:ناراحت:

من میخوام مقدار یک ادیت رو که از نوع عدد هست تقسم بر 100 کنم و در ادیت دیگه بریزم . متاسفانه یک ارور کوچیک میده که نمیدونم منظورش چیه؟ این کدی که من به ذهنم رسید:


edit3.text:=strtoint(edit2.text) / 100


دوست عزیز بدلیل اینکه امکان داره جواب شما اعشاری باشه بهتره از دستور زیر استفاده کنید
دوم اینکه بعد از انجام کل محاسبه بایستی به رشته تبدیل بشه



edit3.text := floattostr(strtofloat(edit2.text) / 100)


موفق باشید

Mahmood_M
پنج شنبه 17 تیر 1389, 18:31 عصر
مقدار Text یک Edit از نوع String هست ، پس نمی تونید یک مقدار عددی رو درونش قرار بدید ، ابتدا باید حاصل محاسبات رو به String تبدیل کنید و بعد درون Edit قرار بدید :
Edit2.Text := FloatToStr(StrToInt(Edit1.Text) / 100);
در دستور بالا از تابع FloatToStr استفاده شد ، منظور از نوع Float یک عدد اعشاری هست ، چون عملگر تقسیم " / " حاصلش ممکنه یک عدد اعشاری باشه ، دلفی حاصل این تقسیم رو به عنوان یک نوع اعشاری می شناسه ، اگر از تابع IntToStr استفاده کنید با خطا مواجه میشید ، IntToStr مقادیر Integer که عدد صحیح هستند رو به String تبدیل می کنه ولی حاصل محاسبات ما یک عدد اعشاری هست ...

یک تذکر :
سعی کنید قوانین سایت رو رعایت کنید ، هر سئوال رو در بخش مربوط به خودش بپرسید ، بخش بانک های اطلاعاتی جای مطرح کردن سئوالاتی مثل این سئوال نیست ...

موفق باشید ...

ویرایش : جوابها همزمان شد ... !!

ms.nazeri
پنج شنبه 17 تیر 1389, 18:41 عصر
سلام دوست عزیز
ممنون از جوابتون ولی باید بگم باز هم ارور میگیره از عدد 100؟

هر روشی رو امتحان کردم!
به نظرتون نوع نوشتنم درسته ؟ چی کم گذاشتم ؟ چیزی رو نباید تبدیل کنم ؟
مقدار ادیت من از نوع اینتیجر هست..

Mahmood_M
پنج شنبه 17 تیر 1389, 18:48 عصر
به نظرتون نوع نوشتنم درسته ؟ چی کم گذاشتم ؟ چیزی رو نباید تبدیل کنم ؟
دقیقا دستوراتی که نوشتید رو اینجا بزارید ...

مقدار ادیت من از نوع اینتیجر هست..
مقدار درون Edit از نوع Integer نیست بلکه یک مقدار رشته ای شامل عدد هست ، برای اینکه به نوع عددی ( مثلا Integer ) تبدیل بشه باید از توابعی مثل StrToInt یا ... استفاده کنید ...

homayoun_sa
جمعه 18 تیر 1389, 18:06 عصر
ببین دوست عزیز
دستوری که محمود نوشته کاملا درسته


edit3.text:=floattostr(strtoint(edit2.text) / 100 );

ولی به جای تقسیم بر صد می تونی اون را * 0,01 هم بکنی

به این شکل

edit3.text:=floattostr(strtofloat(edit2.text) * 0.01 );

این رو هم امتحان کن