نمایش نتایج 1 تا 16 از 16

نام تاپیک: اختلاف در نتيجه

  1. #1

    Question اختلاف در نتيجه

    دوستان عزيز با سلام
    من در حال مقايسه فرمولهاي اكسل با سي شارپم
    اما در فرمول زير نتيجه با هم متفاوت است
    int(60.7 * 2 + 0.5)/2
    doubel a = (int) (60.7 * 2 + 0.5 )/2;
    اولي فرمولي است كه در اكسل نوشتم و نتيجه آن 60.5 شد دومي در سي شارپ نوشتم و نتيجه آن 60 شد اگه ممكنه كمك كنيد كه كد دوم در كجا اشتباه نوشتم
    ممنونم

  2. #2
    کاربر دائمی آواتار sara.f
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    آنجا که دروغ نباشد!
    پست
    809

    نقل قول: اختلاف در نتيجه

    نقل قول نوشته شده توسط behroz1387 مشاهده تاپیک
    دوستان عزيز با سلام
    من در حال مقايسه فرمولهاي اكسل با سي شارپم
    اما در فرمول زير نتيجه با هم متفاوت است
    int(60.7 * 2 + 0.5)/2
    doubel a = (int) (60.7 * 2 + 0.5 )/2;
    اولي فرمولي است كه در اكسل نوشتم و نتيجه آن 60.5 شد دومي در سي شارپ نوشتم و نتيجه آن 60 شد اگه ممكنه كمك كنيد كه كد دوم در كجا اشتباه نوشتم
    ممنونم
    سلام.
    من می دونم که زمانیکه نام یک نوع از داده را در پرانتز قرار میدیم داریم تبدیل نوع انجام میدیم ( اصطلاحش یادم رفته )
    در اینجا هم شما دارید مقدار بدست اومده از رابطه را در تبدیل به integer می کنید،
    یعنی دارید قسمت اعشارش را حذف می کنید.

  3. #3

    نقل قول: اختلاف در نتيجه

    دوست عزيز چطوري اصلاحش كنم

  4. #4
    کاربر دائمی آواتار sara.f
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    آنجا که دروغ نباشد!
    پست
    809

    نقل قول: اختلاف در نتيجه

    یادم اومد اومد، اصطلاحش type casting هست
    یعنی یک داده را به نوعی دیگر تغییر قالب دادن.
    حله؟!

  5. #5
    کاربر دائمی آواتار sara.f
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    آنجا که دروغ نباشد!
    پست
    809

    نقل قول: اختلاف در نتيجه

    نقل قول نوشته شده توسط behroz1387 مشاهده تاپیک
    دوست عزيز چطوري اصلاحش كنم
    برای اصلاح کردنش کافیه (int) را بردارید.
    من فکر می کنم اگر در اکسل هم (int) می نوشتید همان جواب معادل #c را می داد.

  6. #6

    Smile نقل قول: اختلاف در نتيجه

    سلام ، در اکثر زبانهای برنامه نویسی وقتی عدد صحیحی بر عدد صحیح دیگر تقسیم

    میشود ، نتیجه میشود قسمت صحیح عدد حاصل و قسمت اعشاری حذف میگردد که برای

    اینکه این قسمت اعشاری حذف نشود ، از روش Type Casting استفاده میشود :

    کد مورد نظر شما :


    double a = ((double)((int)(60.7 * 2 + 0.5))) / 2;


    موفق و پیروز باشید !!!






  7. #7

    نقل قول: اختلاف در نتيجه

    اما با برداشتن int جواب غلط مي شه من مي خواهم جوابم با اكسل يكي بشه ممنون مي شم اگه كمك كنيد

  8. #8

    نقل قول: اختلاف در نتيجه

    استادان محترم من مي خواهم اعمال رياضي داخل پرانتز را انجام دهد بعد عدد صحيح بدست آمده را بر دو تقسيم كنم

  9. #9
    کاربر دائمی آواتار sara.f
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    آنجا که دروغ نباشد!
    پست
    809

    نقل قول: اختلاف در نتيجه

    نقل قول نوشته شده توسط behroz1387 مشاهده تاپیک
    استادان محترم من مي خواهم اعمال رياضي داخل پرانتز را انجام دهد بعد عدد صحيح بدست آمده را بر دو تقسيم كنم
    ببین دوست عزیز اگر میخوای دقیقا 60.5 بدست بیاد ، باید اینطوری بنویسی

    double
    a = ((int)(60.7 * 2 )/2)+ 0.5;

  10. #10

    Smile نقل قول: اختلاف در نتيجه

    نقل قول نوشته شده توسط behroz1387 مشاهده تاپیک
    اما با برداشتن int جواب غلط مي شه من مي خواهم جوابم با اكسل يكي بشه ممنون مي شم اگه كمك كنيد
    جواب تکمیل شد !


    double a = ((double)((int)(60.7 * 2 + 0.5))) / 2;







  11. #11

    نقل قول: اختلاف در نتيجه

    استاد گرامي من 60.5 مد نظرم نيست بلكه مي خوام همانطور كه نوشتم عدد صحيح انجام محاسبه رياضي داخل پرانتز را به عدد ديگري تقسيم كنم كه عدد بدست آمده در صورت اعشاري بودن اعشار آن را نشان دهد

  12. #12
    کاربر دائمی آواتار sara.f
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    آنجا که دروغ نباشد!
    پست
    809

    نقل قول: اختلاف در نتيجه

    نقل قول نوشته شده توسط behroz1387 مشاهده تاپیک
    استاد گرامي من 60.5 مد نظرم نيست بلكه مي خوام همانطور كه نوشتم عدد صحيح انجام محاسبه رياضي داخل پرانتز را به عدد ديگري تقسيم كنم كه عدد بدست آمده در صورت اعشاري بودن اعشار آن را نشان دهد
    منظورت کدوم استاد گرامیه؟!!!!!!!!!
    من استاد گرامیه؟!! یا salar_cpp_cs استاد گرامیه؟!!!
    به هر حال اگر من استاد گرامیه، که من آخرش متوجه نشدم ، مهم برات ترتیب معادلست یا جواب معادله.

  13. #13
    VIP آواتار Amir Oveisi
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    هر جا که حال کنم - فعلا یزد
    پست
    2,604

    نقل قول: اختلاف در نتيجه

    دوست عزیز شما به اینصورت باید بنویسید:
    (int)(60.7 * 2 + 0.5) / 2d

    دقت کنید که d بعد از 2 به این معنی هست که 2 رو به عنوان double در نظر بگیره. در حالت اول که شما نوشته بودید هر دو طرف عمل تقسیم int بودند و قطعا جواب هم int میشد. اما اگر طرف دوم را double کنید نتیجه نیز double خواهد بود. اینطور جواب 60.5 میاد.
    به جای 2d میتونین
    (double)2
    هم بنویسید.

    موفق باشید

  14. #14
    مدیر بخش آواتار salehbagheri
    تاریخ عضویت
    خرداد 1386
    محل زندگی
    In Hearts
    سن
    34
    پست
    2,225

    نقل قول: اختلاف در نتيجه

    نقل قول نوشته شده توسط behroz1387 مشاهده تاپیک
    دوستان عزيز با سلام
    من در حال مقايسه فرمولهاي اكسل با سي شارپم
    اما در فرمول زير نتيجه با هم متفاوت است
    int(60.7 * 2 + 0.5)/2
    doubel a = (int) (60.7 * 2 + 0.5 )/2;
    اولي فرمولي است كه در اكسل نوشتم و نتيجه آن 60.5 شد دومي در سي شارپ نوشتم و نتيجه آن 60 شد اگه ممكنه كمك كنيد كه كد دوم در كجا اشتباه نوشتم
    ممنونم

    int(60.7 * 2 + 0.5)/2
    doubel a = ((int) (60.7 * 2 + 0.5 ))/2;


    احتمالا این طوری مشکلتون حل میشه!
    امیدم به دستان زیبای اوست . آنکه می آید . همان که نامش منجی ست ....

    به راستی اگر غرق نبودیم چرا مارا به منجی ای نیازمند کرده اند؟ ... دنیا دریاست ....

    دلنوشته های من


  15. #15
    VIP آواتار Amir Oveisi
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    هر جا که حال کنم - فعلا یزد
    پست
    2,604

    نقل قول: اختلاف در نتيجه

    کد:

    int(60.7 * 2 + 0.5)/2
    doubel a = ((int) (60.7 * 2 + 0.5 ))/2;

    احتمالا این طوری مشکلتون حل میشه!
    1- با یک نگاه میشه فهمید که این پرانتزهای قرمز که اضافه کردید هیچ تاثیری در نتیجه نخواهند داشت چون که کاملا اضافه هستند و به احتمال بسیار زیاد در زمان کامپایل توسط کامپایلر نادیده گرفته خواهند شد.
    مثل اینه که همچین چیزی نوشته باشید :
    ((2)) / 2


    2- لطفا قبل از ارسال پست های مشابه اول خودتون نتیجه رو تست کنید بعد نسبت به ارسال پست اقدام کنید تا کسی که سوالی پرسیده سریع تر به جواب برسه و باعث سردرگمی نشه.

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

  16. #16
    مدیر بخش آواتار salehbagheri
    تاریخ عضویت
    خرداد 1386
    محل زندگی
    In Hearts
    سن
    34
    پست
    2,225

    نقل قول: اختلاف در نتيجه

    2- لطفا قبل از ارسال پست های مشابه اول خودتون نتیجه رو تست کنید بعد نسبت به ارسال پست اقدام کنید تا کسی که سوالی پرسیده سریع تر به جواب برسه و باعث سردرگمی نشه.
    Oops !!!!

    خوب به هر حال اشتباه شد! روزه گرفتن خیلی سرم فشار اورده!

    منظورم این بود:


    double a = (int)(60.7 * 2 + 0.5) / 2.0;
    امیدم به دستان زیبای اوست . آنکه می آید . همان که نامش منجی ست ....

    به راستی اگر غرق نبودیم چرا مارا به منجی ای نیازمند کرده اند؟ ... دنیا دریاست ....

    دلنوشته های من


قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •