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

نام تاپیک: Cast نشدن وقتی که پرانتز هست

  1. #1

    Cast نشدن وقتی که پرانتز هست

    سلام
    چرا cast نمیکنه به double ??????
    sum += d * (double)(4/x) ;

    اگر پرانتز بردارم درست میشه
    sum += d * (double)4/x ;

  2. #2
    کاربر تازه وارد آواتار llMMDll
    تاریخ عضویت
    خرداد 1392
    محل زندگی
    IRAN - Tehran
    سن
    33
    پست
    50

    نقل قول: Cast نشدن وقتی که پرانتز هست

    سلام
    نوع داده sum که قرار دادید نباید چیزی به غیر از double باشد و اگر هست یک cast دیگر نیاز دارید

  3. #3

    نقل قول: Cast نشدن وقتی که پرانتز هست

    سلام
    نیست.همان double است. گیر تو پرانتز است وقتی بزارم دیگه اعشار نمیزنه

  4. #4

    نقل قول: Cast نشدن وقتی که پرانتز هست

    در حالت اول 4(سمت چپ تقسیم) عدد صحیحه پس حاصل تقسیم عدد صحیح خواهد بود. باید به طریقی 4 رو به عنوان عدد اعشاری بشناسانی که در حالت دوم 4 به double تبدیل میشه و حاصل تقسیم هم double خواهد شد.

  5. #5
    کاربر تازه وارد آواتار MiniMicro
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    google,Microsoft,Oracle,...,
    سن
    30
    پست
    98

    نقل قول: Cast نشدن وقتی که پرانتز هست

    من فکر میکنم در حالت اول کامپایلر درگیر مباحث تقدم عملگر ها میشه که از این دو پرانتز سمت چپ ترین پرانتز اول اجرا میشه و چون هیچ عددی بعد از پرانتز وجود نداره کاری از پیش نمیبره و در پرانتز دوم 4 تقسیم بر عدد صحیح میشه که نتیجه یه عدد صحیح خواهد بود و مسلما sum هم مقدار صحیح به خودش میگیره ولی در حالت دوم کاملا درسته 4 تبدیل به 4.00 میشه و نتیجه هم درست خواهد بود.
    اگر اشتباه فکر میکنم دوستان اصلاح کنند...

  6. #6

    نقل قول: Cast نشدن وقتی که پرانتز هست

    ممنو ن این جی؟
    p =Math.Pow(i,2);
    بهم میگه دابل نمیتونم به int تبدیل کنم! بالای سر این دستور هم یک حلقه فور گذاشتم.مگر توان به اعشار هم میرسه؟
      for (int i = 1; i <= 500; i++)
    {
    p = Math.Pow(i,2);

  7. #7
    کاربر تازه وارد آواتار MiniMicro
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    google,Microsoft,Oracle,...,
    سن
    30
    پست
    98

    نقل قول: Cast نشدن وقتی که پرانتز هست

    علتش به خاطر اینه که متغییر p از نوع int هست ولی ورودی هایی که تابع pow میگیره به صورت double دریافت میشه و نتیجه هم به صورت double برگردونده میشه و چون شما دارید نتیجه رو داخل متغییری از نوع int قرار میدید خطا میگیره...

  8. #8

    نقل قول: Cast نشدن وقتی که پرانتز هست

    باید حدس بزنیم Type هایی که استفاده کردی چیه ؟ (خوب یک تیکه کد کامل قرار بده)

  9. #9

    نقل قول: Cast نشدن وقتی که پرانتز هست

    نقل قول نوشته شده توسط MiniMicro مشاهده تاپیک
    من فکر میکنم در حالت اول کامپایلر درگیر مباحث تقدم عملگر ها میشه که از این دو پرانتز سمت چپ ترین پرانتز اول اجرا میشه و چون هیچ عددی بعد از پرانتز وجود نداره کاری از پیش نمیبره و در پرانتز دوم 4 تقسیم بر عدد صحیح میشه که نتیجه یه عدد صحیح خواهد بود و مسلما sum هم مقدار صحیح به خودش میگیره ولی در حالت دوم کاملا درسته 4 تبدیل به 4.00 میشه و نتیجه هم درست خواهد بود.
    اگر اشتباه فکر میکنم دوستان اصلاح کنند...
    بخش اول رو اشتباه گفتید. در حالت اول حاصل پرانتز که یک عدد صحیحه به double تبدیل میشه پس در نهایت حاصل از نوع double خواهد بود.
    نقل قول نوشته شده توسط irpersian20 مشاهده تاپیک
    ممنو ن این جی؟
    p =Math.Pow(i,2);
    بهم میگه دابل نمیتونم به int تبدیل کنم! بالای سر این دستور هم یک حلقه فور گذاشتم.مگر توان به اعشار هم میرسه؟
      for (int i = 1; i <= 500; i++)
    {
    p = Math.Pow(i,2);
    بله حاصل میتونه اعشاری هم باشه مثلا کافیه یک عدد اعشاری رو به توان دو برسونید.
    آخرین ویرایش به وسیله Mahmoud.Afrad : دوشنبه 07 مرداد 1392 در 22:03 عصر

تاپیک های مشابه

  1. سوال: وقتی فایل aspx هست چرا بعضی اوقات فایل html تو پروژه ها اضافه میکنن
    نوشته شده توسط malloc در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: شنبه 25 آذر 1391, 07:39 صبح
  2. سوال: چطور میشه‌ برنامه‌ مون تو تاسك بار نیشون داده‌ نشه‌ وقتی مینی مایز هست
    نوشته شده توسط akar_program در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 1
    آخرین پست: پنج شنبه 10 آذر 1390, 23:50 عصر
  3. پاسخ: 2
    آخرین پست: جمعه 21 اسفند 1388, 20:24 عصر
  4. پاسخ: 2
    آخرین پست: یک شنبه 25 مرداد 1388, 11:20 صبح
  5. چاپ نشدن فیلد عددی وقتی مقدارش برابر صفر است
    نوشته شده توسط ESG_Esfahan در بخش گزارش سازی با Crystal Report
    پاسخ: 2
    آخرین پست: چهارشنبه 06 اردیبهشت 1385, 00:03 صبح

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

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