آموزش سی شارپ قسمت 19: جمع کردن با متغیرهای شناور
ترکیب با متغیرهای float دقیقا شببه به متغیرهای double با علامت مثبت می باشد. حتی میتوانید متغیرهای integer و float با یکدیگر ترکیب کنید . اما باید این کار را با دقت انجام دهید.
دکمه دیگری را به فرم خود اضافه کنید و ویژگی های زیر را برای آن در پنجره Properties تنظیم کنید:
Name: btnAddFloats
Size: 100, 30
Text: Float - Add
برای دریافت کد روی دکمه خود دوبار کلیک کنید. متغیرهای زیر را تنظیم کنید:
float firstNumber;
float secondNumber;
float floatAnswer;
(توجه داشته باشید که برای دو متغیر اول از نامهای یکسانی استفاده کردهایم. سی شارپ گیج نمیشود، زیرا آنها در بین براکتهای { } کد دکمه قرار دارند.
میتوانید متغیرهایی را خارج از براکتهای { } تنظیم کنید. این عمل را در انتهای این بخش هنگام کدنویسی ماشین حساب انجام خواهیم داد.
در این هنگام scope وارد بازی میشود. فعلاً نگران آن نباشید.)
برای مقداردهی متغیرهای جدید، کد زیر را اضافه کنید:
firstNumber = 10.5F;
secondNumber = 32.5F;
floatAnswer = firstNumber + secondNumber;
در نهایت،در MessageBox، پیام خود را اضافه کنید:
MessageBox.Show( floatAnswer.ToString( ) );
پنجره کدنویسی باید به شکل زیر باشد:
فرم را اجرا کنید و دکمه جدید خود را کلیک کنید. شما باید این را ببینید:
بنابراین 10.5 + 32.5 برابر است با 43. فرم خود را با کلیک بر روی X قرمز ببندید و به پنجره کدنویسی خود بازگردید.
همانطور که گفته شد، می توانید مقادیر float و integer را با هم ترکیب کنید. اما شما باید مواظب باشید. روش زیر را امتحان کنید:
متغیر زیر را به کد خود اضافه کنید:
int integerAnswer;
و سپس این خط را :
floatAnswer = firstNumber + secondNumber;
به این تغییر دهید :
integerAnswer = firstNumber + secondNumber;
بنابراین فقط نام متغیر قبل از علامت تساوی است که باید تغییر کند.
خط جعبه پیام خود را از این :
MessageBox.Show( floatAnswer.ToString( ) );
به این اصلاح کنید:
MessageBox.Show( integerAnswer.ToString() );
سپس پنجره کدنویسی شما به شکل زیر خواهد بود:
سعی کنید کد خود را اجرا کنید. برنامه اجرا نمی شود، و شما یک خط زیگزاگ نمایانگر خطا خواهید داشت:
ماوس خود را روی خط زیگزاگ نگه دارید و توضیحی درباره خطا مشاهده خواهید کرد:
اگر تازه کار باشید از این پیغام چیزی سر درنخواهید آورد.
آنچه دارد میگوید این است که عدد اول و عدد دوم متغیرهای float هستند. جواب عملیات ترکیب هم float است. با این حال شما قصد داشتید جواب را در یک متغیر integer ذخیر نمایید. سی شارپ به شما اجازه نمیدهد متغیر float را در integer ذخیره کنید. پیغام خطا به شما می گوید که ابتدا باید متغیرها را تبدیل کنید.
در واقع میتوانید مقادیر float را به اعداد integer تبدیل کنید. برای این منظور بصورت زیر عمل کنید.
integerAnswer = (int) firstNumber + (int) secondNumber;
کلمه int را بین یک جفت پرانتز ( ) مینویسیم . این کار را قبل از عددی که میخواهیم تبدیل کنیم انجام میدهیم. این به این معنی است که رقم اعشار عدد حذف خواهد شد.
بنابراین عدد 10.5 به 10 تبدیل میشود و 32.5 به 32. البته با این کار اعداد زیاد دقیق نیستند اما حداقل فایده اش این است که برنامه اجرا میشود.
روش بالا را امتحان کنید. با کلیک کردن بر روی دکمه عدد 42 را در جواب خواهید دید.
بنابراین قانون کلی این است : اگر جواب ما عددیست که به اعشار ختم می شود باید از متغیرهای float و یا double استفاده کنیم.
در زیر جواب float یک خط سبز زیگزاگ خواهیم داشت. این نتیجه به این دلیل است که ما در این متغیر چیزی ذخیره نکرده ایم. نگران این مسئله نباشید.
توجه داشته باشید که عکس این عملیات را نیز میتوانید انجام دهید یعنی یک مقدار integer را در یک متغیر float ذخیره کنید.
به تغییر جزئی که در کد میدهیم توجه کنید:
ابتدا توجه کنید که عدد 20 را در متغیر integer بنام integerAnswer ذخیره می کنیم.
int integerAnswer = 20;
به جای دو خط فقط از یک خط استفاده می کنیم. این در سی شارپ عالیست . تنها در یک خط دو کار انجام میدهیم. تنظیم متغیرها و مقداردهی آنها.
نکته دوم که باید به آن توجه کنید این است که ما داریم دو متغیر float را باهم ترکیب می کنیم (عدد اول و عدد دوم) و یک integer (جواب integer است)
سپس پاسخ را در یک متغیر شناور (floatAnswer) ذخیره می کنیم. آن را امتحان کنید و متوجه خواهید شد که کد به خوبی اجرا می شود.
اگر این خط را:
firstNumber = 10.5F;
به این خط تغییر دهیم:
firstNumber = 10;
مجددا برنامه به خوبی اجرا خواهد شد به عبارت دیگر شما میتوانید یک مقدار Integer در یک متغیر float ذخیره کنید اما نمیتوانید بدون تبدیل کردن یک مقدار float را در یک متغیر integer ذخیره کنید.
خوشبختانه زیاد پیچیده نیست.
اکنون به سراغ تفریق می رویم. اما اگر میخواهید از یک متغیر double به جای متغیر float استفاده کنید، همان موارد اعمال میشود
مراقب باشید که چه چیزی را میخواهید ذخیره کنید و در کجا!
این فصل در یک نگاه:
آموزش ارسال پیامک، آموزش ارسال پیامک تکی و گروهی ، ارسال پیامک به صورت اختصاصی برای هر مشترک، دریافت پیامک، مشاهده وضعیت…
توضیحات کلی مجموعه: آیا می دونید قیمت نرم افزارهای مدیریت پیامک در حدود 150 هزار تومان است؟ اما توسط این دوره شما میتونید با مبلغ بسیار کمتر یک نرم افزار مدیریت پیامک رو به صورت کاملا حر…این فصل در یک نگاه:
در این فصل که فصل پایانی این دوره می باشد در مورد نحوه ساختن فایل نصبی سریع یا همان quick installer که روش پیشنهاد شده م…
توضیحات کلی مجموعه: پس از بازخوردهای بسیار خوبی که از دوره های آموزش برنامه نویسی سیستم اتوماسیون اداری و آموزش برنامه نویسی سیستم فروش و انبارداری مشاهده کردیم، تصمیم گرفتیم با توجه به درخ…این فصل در یک نگاه:
در این فصل که فصل آخر از مجموعه بزرگ آموزش سیستم اتوماسیون اداری می باشد در ابتدا در مورد اسناد و نامه های خارج از سازما…
دوره صفر تا صد آموزش برنامه نویسی و پیاده سازی سیستم اتوماسیون اداری تحت شبکه. (توصیه می شود دومی مجموعه را حتما ببینید) امروزه اطلاعات یکی از مهمترین و با ارزشترین منابع هر اداره و یا ساز…این فصل در یک نگاه:
توضیح تنظیمات گرافیک و صدا در یونیتی پیاده سازی منو ها …
به نام خدا بازیسازی یک حرفه بسیار جذاب است و تبدیل شدن به یک بازیساز حرفهای آرزوی همه ماست. اینکه بتوانیم دنیای خاصی خلق کنیم و در این دنیا قوانین خود را پیاده کنیم، همیشه ما را به وج…این فصل در یک نگاه:
اجرای سیستم روی سیستم، قرار دادن سیستم روی سرور، تعریف Connetion String، آشنایی با فایل App.config، ساخت رشته اتصال به ص…
مهمترین تکنولوژیهای استفاده شده در این دوره پروژه محور (سیستم فروش کالا و انبارداری) طراحی گرافیکی به روش WPF (Windows Presentaion Foundation) آموزش کامل برنامه نویسی xaml (برای طراحی های …این فصل در یک نگاه:
فصل پنجم…
توضیحات کلی مجموعه: درباره گیت: لذت پیش بردن پروژه های برنامه نویسی خود را با بهترین ورژن کنترل سیستم جهان تجربه کنید کامل ترین دوره ی آموزشی گیت و گیت هاب به همراه مثال های کاربردی گی…