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

نام تاپیک: گرد کردن(روند کردن) اعداد float در C++‎

  1. #1

    گرد کردن(روند کردن) اعداد float در C++‎

    سلام دوستان. آیا این امکان وجود داره که اعداد رو در C++‎ روند کرد؟ مثلا:
    0.3199998 ----> 0.32
    219999 -------> 220000

  2. #2
    کاربر تازه وارد آواتار GENERAL IRAJ
    تاریخ عضویت
    دی 1391
    محل زندگی
    قزوین
    پست
    80

    نقل قول: گرد کردن(روند کردن) اعداد float در C++‎

    بله ، با استفاده از توابع کتابخانه ای ریاضی.
    با استفاده از تابع ()ceil کوچترین عدد صحیح بزرگتر مساوی با یک عددرا که به عنوان آرگومان آن می باشد محاسبه می کند(گرد کردن به سمت پایین)
    و با استفاده از تابع ()floor که عدد رو به عنوان آرگومان ورودی دریافت می کنه و به سمت بالا گرد می کنه.
    در ضمن سر فایل توابع ریاضی رو هم باید در برنامه لحاظ کنی. <math.h>

  3. #3
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    توی کامپیوتر
    پست
    282

    نقل قول: گرد کردن(روند کردن) اعداد float در C++‎‎‎

    با سلام

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

    اگه منظورت اینه که طول میدان را در خروجی تعیین کنیم به روش های زیر می تونی این کار رو بکنی:

    برای تعیین طول کل میدان (اعم از صحیح و اعشاری):

    cout.width(5);
    cout << 0.3199998 << endl;



    برای تعیین طول قسمت اعشار عدد:


    cout.precision(2);
    cout << 2234.3199998 << endl;


    در این دستور قسمت اعشار تا دقت یک صدم گرد می شوند.

    تذکر: گرد کردن فقط برای اعداد اعشاری و اون هم فقط قسمت اعشار جواب میده و برای گرد کردن اعداد صحیح باید خودتون کد بنویسید.

  4. #4

    نقل قول: گرد کردن(روند کردن) اعداد float در C++‎‎‎

    با عرض سلام خدمت اساتید محترم
    در مورد گرد کردن اعشار میشه یک مثال بزنید و مثال رو دقیق توضیح بدید
    من اصلا این رشته رو نخوندم و از این فرمولها سر در نمیارم
    من برای نوشتن برنامه برای آی سی avr با زبان C++‎ احتیاج دارم که یک متغیر رو از نوع float با نام a در کدویژن معرفی کنم
    این متغیر دقیقا ولتاژ ورودی به آی سی رو به مانشون میده که هم اعشار خیلی زیادی داره هم دائما در حال تغیره
    حالا من میخوام بااستفاده از یک فرمول ریاضی یا تابع اعشارهای اضافی رو حذف کنم
    برنامه من اینه
    float a;
    a=read_adc(0);
    a=a*5/1023;
    برای نمایش این عدد در ال سی دی از تابع sprintf استفاده کردم
    ممنون و سپاسگذارم

  5. #5
    کاربر دائمی آواتار Ananas
    تاریخ عضویت
    آبان 1390
    محل زندگی
    طول 50 و عرض 34 درجه
    سن
    36
    پست
    894

    نقل قول: گرد کردن(روند کردن) اعداد float در C++‎‎‎‎

    سلام.
    با کمک تابع floor و ceil که در math.h هست این تابع رو مینویسیم:

    float RoundFlt(const float x, const int ex)
    {
    static const float pow_10_ex[] =
    {
    1.0f,
    10.0f,
    100.0f,
    1000.0f,
    10000.0f,
    100000.0f,
    1000000.0f
    };
    static const float inv_pow_10_ex[] =
    {
    1.0f,
    0.1f,
    0.01f,
    0.001f,
    0.0001f,
    0.00001f,
    0.000001f
    };
    int index = (ex > 6) ? 6 : ex;
    float l_x = x * pow_10_ex[index];
    return ((l_x < 0.0f) ? ceil(l_x - 0.5) : floor(l_x + 0.5f)) * inv_pow_10_ex[index];
    };


    مقدار ex ورودی تابع برای تعداد رقم های اعشار هست. متلا برای چهار رقم:

    RoundFlt(a, 4);

    البته این تابع برای مقادیری هست که توان ده بزرگ یا کوچیک نداشته باشن. مثلا عدد 1.9999e30 رو که در واقع 1999900000000000000000000000000 هست به 2.0e30 رند نمیکنه!

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

  1. روند کردن اعداد
    نوشته شده توسط hovakhshatre در بخش VB.NET
    پاسخ: 3
    آخرین پست: یک شنبه 27 فروردین 1391, 22:16 عصر
  2. مبتدی: جدا کردن حروف و اعداد
    نوشته شده توسط Wayne Rooney در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 6
    آخرین پست: یک شنبه 24 آبان 1388, 17:46 عصر
  3. یک edit با قابلیت جدا کردن سه رقمی اعداد
    نوشته شده توسط mortezakiaee در بخش برنامه نویسی در Delphi
    پاسخ: 4
    آخرین پست: چهارشنبه 10 بهمن 1386, 01:11 صبح
  4. جدا کردن سه رقمی اعداد در هنگام ورود در DBGrid؟
    نوشته شده توسط SYNDROME در بخش برنامه نویسی در Delphi
    پاسخ: 17
    آخرین پست: دوشنبه 28 آبان 1386, 08:26 صبح
  5. روند کردن عدد در asp.net
    نوشته شده توسط mohandess_anita در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: دوشنبه 08 اسفند 1384, 16:49 عصر

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

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