اطلاعیه

Collapse
No announcement yet.

رند کردن عدد اعشار int تو کدوژن

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    رند کردن عدد اعشار int تو کدوژن

    سلام
    یه سوال از c البته codvision
    من می خوام یه عدد int رو به یه عدد ثابت تقسیم کنم ولی نمی خوام اعشار بگیرم راهی واسه رند کردن کسی پیشنهاد داره؟فرق تمی کنه روبه بالا یا پایین رند بشه.نمی خوام متغییری مثل float تعریف کنم
    مثلا
    1234=int A
    A/15 ولی خوب این مسلما اشتباه :eek:
    تو این جهان 7 میلیاردی من معنی ندارد و اگه تو این دنیا فقط 1 نفر وجود داشت باز هم من معنی نداشت

    #2
    پاسخ : رند کردن عدد اعشار int تو کدوژن

    نوشته اصلی توسط sey22
    سلام
    یه سوال از c البته codvision
    من می خوام یه عدد int رو به یه عدد ثابت تقسیم کنم ولی نمی خوام اعشار بگیرم راهی واسه رند کردن کسی پیشنهاد داره؟فرق تمی کنه روبه بالا یا پایین رند بشه.نمی خوام متغییری مثل float تعریف کنم
    مثلا
    1234=int A
    A/15 ولی خوب این مسلما اشتباه :eek:
    INT خودش عدد صحیح-منظورت نا مفهومه
    خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

    دیدگاه


      #3
      پاسخ : رند کردن عدد اعشار int تو کدوژن

      منظورم حاصل تقسیمه می خوام حاصل تقسیم int به یه عدد ثابت اعشار نشه با اگه شد رندش کنم
      int A=1234
      A/15 میشه 82.2 حالا من می خوام بشه 82 یا 83 خلاصه اعشار نداشته باشه
      تو این جهان 7 میلیاردی من معنی ندارد و اگه تو این دنیا فقط 1 نفر وجود داشت باز هم من معنی نداشت

      دیدگاه


        #4
        پاسخ : رند کردن عدد اعشار int تو کدوژن

        نوشته اصلی توسط sey22
        منظورم حاصل تقسیمه می خوام حاصل تقسیم int به یه عدد ثابت اعشار نشه با اگه شد رندش کنم
        int A=1234
        A/15 میشه 82.2 حالا من می خوام بشه 82 یا 83 خلاصه اعشار نداشته باشه
        اها
        یه تابع بنویس که عدد یکان رو شناسایی کنه-وقتی شناسایی کرد-فاصله اون عدد رو تا 10 بالا به کل عدد اضافه کنه-مثلا 1964-باید 4 رو شناسایی کنی از 10 کم کنی-عدد مونده رو به کل عدد اضافه کنی-1964+6=1970
        برای شناسایی یکان روش زیاده-مثلا یه روس اینه که با تایع itoa() عدد رو یک آرایه کن و آرایه چهارم یکان هست و میتونی اون رو با توابع و یا مقایسه مقدارش رو پیدا کنی
        خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

        دیدگاه


          #5
          پاسخ : رند کردن عدد اعشار int تو کدوژن

          نوشته اصلی توسط حمید نجفی
          اها
          یه تابع بنویس که عدد یکان رو شناسایی کنه-وقتی شناسایی کرد-فاصله اون عدد رو تا 10 بالا به کل عدد اضافه کنه-مثلا 1964-باید 4 رو شناسایی کنی از 10 کم کنی-عدد مونده رو به کل عدد اضافه کنی-1964+6=1970
          برای شناسایی یکان روش زیاده-مثلا یه روس اینه که با تایع itoa() عدد رو یک آرایه کن و آرایه چهارم یکان هست و میتونی اون رو با توابع و یا مقایسه مقدارش رو پیدا کنی
          مرسی گرفتم چی شد ولی خوب من بالا مثال زدم 15 می خوام به عدد 1.6 تقسیم کنم این جوری 1970/1.6=1234.25 بازم اعشار شد که :surprised:
          تو این جهان 7 میلیاردی من معنی ندارد و اگه تو این دنیا فقط 1 نفر وجود داشت باز هم من معنی نداشت

          دیدگاه


            #6
            پاسخ : رند کردن عدد اعشار int تو کدوژن

            نوشته اصلی توسط sey22
            مرسی گرفتم چی شد ولی خوب من بالا مثال زدم 15 می خوام به عدد 1.6 تقسیم کنم این جوری 1970/1.6=1234.25 بازم اعشار شد که :surprised:
            تو نسبت ها رو با 15 میزون کن.ولی تو جواب بهت اعشاری نمیده-نکته اینه-نوع متغیر int صحیح
            خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

            دیدگاه


              #7
              پاسخ : رند کردن عدد اعشار int تو کدوژن

              نوشته اصلی توسط حمید نجفی
              تو نسبت ها رو با 15 میزون کن.ولی تو جواب بهت اعشاری نمیده-نکته اینه-نوع متغیر int صحیح
              خوب الان 3260/15=217.33 اصلا تو این حالت وقتی متغییر از نوع صحیح و int هست حاصل تقسیم رو قبول میکنه؟(چون جواب اعشار شده می گم )
              یعنی چی یا 15 میزون کن؟یا اینکه 1.6 رو 1.5 بگیرم(خیلی اتفاق خاصی نمی افته :biggrin
              تو این جهان 7 میلیاردی من معنی ندارد و اگه تو این دنیا فقط 1 نفر وجود داشت باز هم من معنی نداشت

              دیدگاه


                #8
                پاسخ : رند کردن عدد اعشار int تو کدوژن

                نوشته اصلی توسط sey22
                خوب الان 3260/15=217.33 اصلا تو این حالت وقتی متغییر از نوع صحیح و int هست حاصل تقسیم رو قبول میکنه؟(چون جواب اعشار شده می گم )
                یعنی چی یا 15 میزون کن؟یا اینکه 1.6 رو 1.5 بگیرم(خیلی اتفاق خاصی نمی افته :biggrin
                فکر میکنم که قبول میکنه و خودش رند میکنه
                منظورم این بود مقداری اضافه کن که تقسیم به 15 روند بده
                خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

                دیدگاه


                  #9
                  پاسخ : رند کردن عدد اعشار int تو کدوژن

                  اینو تستش کن ببین اینه منظورت ؟
                  کد PHP:
                  #include <stdio.h>
                  void main()
                  {
                  int a;
                  a=1234/15;
                  printf("%d",a);

                  از سختی نترس! این سختی هاست که جایگاه و مقام انسان را بالا میبرد...

                  دیدگاه


                    #10
                    پاسخ : رند کردن عدد اعشار int تو کدوژن

                    شما وقتی دو تا عدد int رو بهم تقسیم میکنی خود بخود (بطور ذاتی) عمل رند کردن به پایین انجام میشه. اگر میخوایی این رند کردن به بالا باشه فقط کافیه اول عدد رو با یکی به علاوه مقسوم جمع کنی و بعد تقسیم کنی.
                    ولی در مواردی که عنوان کردی اینجوری بر میاد که میخوایی تقسیم اعشاری انجام بدی اما نمیخوایی از نوع float استفاده کنی. برای این کار هم میتونی از محاسبات بر اساس fixed point استفاده کنی.
                    ولی برای این کار هم ناچاری از یک نوع بزرگتر مثل long استفاده کنی. و قبل از هر کاری عدد ثابت اعشاری تو در یک عدد خاصی از توان 2 مثلا 1024 ضرب کنی و بعد شروع به استفاده کنی. اینجوری میتونی مثلا یک رنج عددی مثبت و منفی 32767.1023 داشته باشی.

                    دیدگاه


                      #11
                      پاسخ : رند کردن عدد اعشار int تو کدوژن

                      عجب
                      اگر منظورتون رو درست متوجه شده باشم
                      تا اونجای من میدونم وقتی دوتا چه اعشاری و چه فیکس رو تقسیم یا ضرب کنی بعد بریزی توی یه متغیر بدون اعشار مثل int خود به خود اعشارش حذف میشه!
                      حالا اگه خواستی یه مقدار اعشاری بریزی تو یه متغیر اعشار دار مثل float و قسمت اعشار رو نداشته باشه بهترین راهش به نظر من این هست که موقع حساب کتاب یه پرانتز باز int و پرانتز بسته پشت متغیرت بزاری.
                      یا از تابع fix یا round استفاده کنی!

                      مثلا این رو ببین
                      sprintf(buf, ".%u ",(((int)(Longitude*100))-(((int)Longitude)*100)));print_string(buf);
                      یه متغیر دابل رو برداشتم و قسمت اعشار رو از صحیح جدا کردم و نمایش دادم با همون این پشت سرشون!
                      بله درسته از ftoa هم میشه استفاده کرد ولی اگه این تابع رو توی مگا 16 فرا خوانی کنی 9 درصد حجم کد میره برای این تابع پس من این کارش کردم که کمتر از یک درصده!
                      انجام پروژه های برنامه نویسی اندروید
                      [glow=red,2,300]نرم افزار نقشه های پاور کامپیوتر اندورید[/glow]
                      http://cafebazaar.ir/app/?id=com.atxdroid

                      دیدگاه


                        #12
                        پاسخ : رند کردن عدد اعشار int تو کدوژن

                        مرسی از نظر همه دوستان ولی من خودم این نکته که خود int اعشار رو حذف می کنه رو نمی دونستم X_X مشکلم حل شد ولی گفته های همه دوستان کامل و بجا بود مرسی از نظرات
                        تو این جهان 7 میلیاردی من معنی ندارد و اگه تو این دنیا فقط 1 نفر وجود داشت باز هم من معنی نداشت

                        دیدگاه


                          #13
                          پاسخ : رند کردن عدد اعشار int تو کدوژن

                          شما که مشکلتون حل شد، اما بابت اطلاع عرض میکنم:
                          تو کدویژن یه دستوری داریم که کارش رندکردن اعداد اعشاری به پایین هستش، همون جزء صحیح(براکت) که دبیرستان داشتیم، دستورش floor هستش
                          a=2.75
                          b= floor(a); i
                          حاصل:
                          b=2
                          کتابخونش هم math.h هستش
                          اونچیزی که در دانشگاه یاد میگیرید، "الفبایی" هست برای نوشتن یک "رمان" !!

                          دیدگاه


                            #14
                            پاسخ : رند کردن عدد اعشار int تو کدوژن

                            دستور floor برای اعداد اعشاری کار میکنه و نتیجه اش هم یک عدد اعشاری هست. ولی cast کردن تبدیل نوع انجام میده. از طرفی ممکنه cast به نوع int برای هر عددی کار نکنه. مثلا 1.5e20 رو نمیشه داخل یک int ریخت. چون باعث گم/خراب شدن داده میشه (توان 20 داره پس حاصلش باید 21 رقم بشه. واین عدد خیلی بزرگتر از 32767 میشه).

                            دیدگاه

                            لطفا صبر کنید...