تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 15

نام تاپيک: جداکردن قسمت اعشاری اعداد اعشاری

  1. #1
    داره خودمونی میشه soheil1366's Avatar
    تاريخ عضويت
    Oct 2005
    محل سكونت
    mashhad
    پست ها
    67

    پيش فرض جداکردن قسمت اعشاری اعداد اعشاری

    سلام
    يك برنامه بنويسيد كه يك عدد اعشاري رو بگيره(float یا double) بعد قسمت اعشار رو جدا کنه وبه ما به صورت یک عدد صحیح نمایش بده و همچنین تعداد ارقام اعشار خورده
    در ضمن با رشته و کاراکتر کاری انجام ندین
    در ضمن ما نمیدونیم که عددfloat یا double یا...
    یک نکته ی دیگه اینکه مثلا عدد 13 با عدد 13.0 برابر نیست چون دومی floating point هست و ممکنه بعد از چندین رقم اعشار دیگر صفر نباشه

  2. #2
    Banned EMPERATOUR's Avatar
    تاريخ عضويت
    Feb 2006
    محل سكونت
    شهر سخت افزار.كام
    پست ها
    616

    پيش فرض

    براي اينكه اعشار رو برداره بايد متغير تبديل به int اينتجر بشه

  3. #3
    حـــــرفـه ای
    تاريخ عضويت
    Aug 2006
    پست ها
    793

    پيش فرض

    سلام.
    حتما با type casting آشنا هستيد.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    و براي نشون دادن قسمت اعشاري هم كافي قسمت unbox شده رو از عدد اصلي كم كنيم:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    Last edited by someone; 26-10-2006 at 13:46.

  4. این کاربر از someone بخاطر این مطلب مفید تشکر کرده است


  5. #4
    داره خودمونی میشه soheil1366's Avatar
    تاريخ عضويت
    Oct 2005
    محل سكونت
    mashhad
    پست ها
    67

    پيش فرض

    سلام
    من گفتم که قسمت اعشار رو به صورت یک عدد طبیعی نشون بده و بدون علامت اعشارش
    مثلاً عدد 12.24 رو به صورت دو عدد 12و24 نمایش بده
    با این کارایی که شما گفتین اعشار به صورت یک عدد اعشاری نشون داده میشه
    یعنی 0.24 و هدف من این نیست

  6. #5
    حـــــرفـه ای
    تاريخ عضويت
    Aug 2006
    پست ها
    793

    پيش فرض

    دوباره سلام.
    کافیه دوباره از typecasting استفاده بشه به اين شكل:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    اميدوارم مشكل حل شده باشه.البته حتما الگوريتم هاي بهتري هم وجود داره.
    ممنون.
    Last edited by someone; 27-10-2006 at 01:10.

  7. این کاربر از someone بخاطر این مطلب مفید تشکر کرده است


  8. #6
    داره خودمونی میشه soheil1366's Avatar
    تاريخ عضويت
    Oct 2005
    محل سكونت
    mashhad
    پست ها
    67

    پيش فرض

    سلام
    خیلی ممنون از برنامتون ولی باز هم یک مشکل کوچیک وجود داره که من در اولین پست به اون اشاره کردم واینه که در اعداد اعشاری معلوم نیست که تا چند عدد اعشاری صفر وجود داره مثلا اگر شما در برنامه عدد 1234.1234 رو وارد کنید میبینید که درون یک حلقه ی بینهایت می افته ودلیلش اینه که این عدد در کامپیوتر به صورت 1234.123399999999 ذخیره میشه
    پس این روش نمیتونه روش کامل و بدونه نقصی باشه و اصلا من این برنامه رو خواستم تا یک نفر یک روش حل(غیر از این روش) و بدون نقص پیشنهاد کنه شما هم اگر روش دیگه ای به ذهنتون رسید به من کمک کنید
    به حرحال باز هم از توجه شما ممنونم

  9. #7
    حـــــرفـه ای
    تاريخ عضويت
    Aug 2006
    پست ها
    793

    پيش فرض

    سلام.
    اول باید یه تشکر کنم از شما به خاطر مسئله ای که مطرح کردید.
    ممکنه در ظاهر زیاد مهم نباشه ولی بسیار ارزشمند هست.
    در ضمن باید بگم این دومین بحثی هست که با هم داریم و کاملا مشخصه که شما مسلط هستید.
    همونطور که میدونید double شامل 64 bits هست.
    1 bit برای علامت
    11 bits برای توان
    52 bits برای قسمت اعشاری وعدد
    به ازای هر عدد صحیح تا جایی که لازم باشه فضا در نظر گرفته میشه به اضافه ی اینکه میشه برای
    قسمت اعشاری (یا عدد های بزرگ) از توان استفاده کرد.
    تغییراتی در برنامه دادم که مشخصه.
    اگه عدد شما صرفا اعشاری باشه تا 6 رقم دقت رو میشه با این کد حساب کرد.
    اما با توجه به چیزهای که گفته شد با اضافه کردن هر رقم صحیح به عدد مورد نظر از دقت
    قسمت اعشار کاسته میشه. مثلا برای عدد 714 دقت به چهار رقم اعشار میرسه وبه همین ترتیب.
    یعنی خروجی برنامه به ازای 714.4236 عدد 4236 هست اما اگه 714.42365 رو نمیتونه حساب کنه
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    راستي بايد اضافه كنم اگه رقم آخر قسمت اعشاري(قسمت كم ارزش) از 5 كوچكتر باشه خودش
    در حافظه قرار ميگيره و اگه بزرگتر از 5 باشه , يك رقم از عدد آخر كم و دنباله به صورت 999..در مياد.
    مثلا : 1234.124 به صورت 1234.124000000000000 و عدد 1234.127 به صورت 1234.12699999999999
    Last edited by someone; 28-10-2006 at 00:08.

  10. این کاربر از someone بخاطر این مطلب مفید تشکر کرده است


  11. #8
    داره خودمونی میشه soheil1366's Avatar
    تاريخ عضويت
    Oct 2005
    محل سكونت
    mashhad
    پست ها
    67

    پيش فرض

    سلام
    خيلي ممنون از اينكه در اين بحث با من همكاري كردين و منو راهنمايي كردين
    در ضمن عدد1234.1234 در كامپيوتر من 1234.12399999 نمايش داده ميشه و من فكر ميكنم اين نكته اي رو كه شما در مورد رقم آخر قسمت اعشاري گفتين به تعداد ارقام اعشار خورده هم ربطي داشته باشه يا حداقل تا جايي كه من امتحان كردم اينجوري بوده
    باز هم از توجه شما ممنونم

  12. #9
    حـــــرفـه ای
    تاريخ عضويت
    Aug 2006
    پست ها
    793

    پيش فرض

    بله كاملا درسته.هونطور كه گفتيد به تعداد رقم هاي اعشار و هم به تعداد رقم هاي صحيح
    بستگي داره.
    خواهش ميكنم خوشحال ميشم بتونم كمكي كرده باشم.
    باز ممنون به خاطر بحثي كه مطرح كرديد.

  13. #10
    در آغاز فعالیت
    تاريخ عضويت
    Apr 2009
    پست ها
    2

    پيش فرض

    سلام
    برای کم کردن تعداد ارقام اعشار نوع داده double باید چکار کرد البته در c# ؟ممنون میشم کمکم کنید

صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •