خب از اول بهتر بود سوالتون دقیق میگفتید.
واسه این کار میشه از راه کار زیر استفاده کرد.با کمک از قانون زیر میتونید مشکل حل کنید.
مطمئنا عمل cast کردن رو میدونید..وقتی یک عدد double بخوایم بریزیم داخل یک متغییر از نوع int ،قسمت صحیح داخل متغیر int و قسمت اعشار ازبین میره.مثلا
با دستور بالا مقدار 3 داخل متغییر n قرار میگیره.
خب با دونستن مطلب بالا میشه مشکل حل کرد.
فرض کنید نتیجه عمل جمع رو در متغیر res که از نوع double ذخیره کردید..ما نمیدونیم که عدد حاصل قسمت بعد اعشارش 0 هست یا عدد.
کافیه یک متغییر کمکی tmp از نوع int تعریف کنید و مقدار res داخلش بریزید.
حالا برای تشخیص از دستور شرطی استفاده میکنیم
یعنی اگر مقدار res=3.0 باشد .مقداری که در داخل tmp ریخته میشه 3 است.
پس شرط درست میشود و مقدار tmp چاپ میشود.
یا آگر مقدار res=3.5 باشد .مقداری که در tmp ریخته میشه 3 است.
پس شرط درست نیست و مقدار res چاپ میشود.
سعی کردم کامل یه دیده درست بهتون بدم.
موفق باشید.
واسه این کار میشه از راه کار زیر استفاده کرد.با کمک از قانون زیر میتونید مشکل حل کنید.
مطمئنا عمل cast کردن رو میدونید..وقتی یک عدد double بخوایم بریزیم داخل یک متغییر از نوع int ،قسمت صحیح داخل متغیر int و قسمت اعشار ازبین میره.مثلا
کد پیاچپی:
double d=3.54;
int n=d;
با دستور بالا مقدار 3 داخل متغییر n قرار میگیره.
خب با دونستن مطلب بالا میشه مشکل حل کرد.
فرض کنید نتیجه عمل جمع رو در متغیر res که از نوع double ذخیره کردید..ما نمیدونیم که عدد حاصل قسمت بعد اعشارش 0 هست یا عدد.
کافیه یک متغییر کمکی tmp از نوع int تعریف کنید و مقدار res داخلش بریزید.
کد پیاچپی:
double res=x1+x2;
int tmp=int(res);//قسمت صحیح در داخل متغییر ریخته میشه.
حالا برای تشخیص از دستور شرطی استفاده میکنیم
کد پیاچپی:
if(res==tmp)
text.setText(Integer.toString(tmp));
else
text.setText(Double.toString(res));
یعنی اگر مقدار res=3.0 باشد .مقداری که در داخل tmp ریخته میشه 3 است.
پس شرط درست میشود و مقدار tmp چاپ میشود.
یا آگر مقدار res=3.5 باشد .مقداری که در tmp ریخته میشه 3 است.
پس شرط درست نیست و مقدار res چاپ میشود.
سعی کردم کامل یه دیده درست بهتون بدم.
موفق باشید.