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

نام تاپیک: نحوه حذف تعداد اعشار مورد نطر از اعداد اعشاری

  1. #1

    نحوه حذف تعداد اعشار مورد نطر از اعداد اعشاری

    بسمه تعالی
    با سلام
    من می خواهم یک عدد اعشاری که ممکنه هر تعداد اعشار داشته باشه رو فقط 2 رقم اعشارش رو بگیرم
    البته من نمی خواهم اون عدد رو round کنم
    مثلا می خواهم عدد 2.669466 بشه 2.66
    البته دنبال تابع ریاضی برای اون هستم با رشته خودم می تونم درستش کنم
    با تشکر

  2. #2

    نقل قول: نحوه حذف تعداد اعشار مورد نطر از اعداد اعشاری

    توابع ریاضی همشون Round میکنن ... باید دستی با string ببریش ....

  3. #3

    نقل قول: نحوه حذف تعداد اعشار مورد نطر از اعداد اعشاری

    بسمه تعالی
    با سلام
    نقل قول نوشته شده توسط exlord مشاهده تاپیک
    توابع ریاضی همشون Round میکنن ... باید دستی با string ببریش ....
    مطمئن هستید هیچ راهی نداره؟
    با تشکر

  4. #4

    نقل قول: نحوه حذف تعداد اعشار مورد نطر از اعداد اعشاری

    مطمئن هستید هیچ راهی نداره؟
    نه بابا چی چی رو راه نداره.
    این هم کد گرفتن 2 رقم اعشار
     MessageBox.Show(string.Format("{0:n2}",3.14159 ));

  5. #5

    نقل قول: نحوه حذف تعداد اعشار مورد نطر از اعداد اعشاری

    نقل قول نوشته شده توسط محسن شامحمدی مشاهده تاپیک
    نه بابا چی چی رو راه نداره.
    این هم کد گرفتن 2 رقم اعشار
     MessageBox.Show(string.Format("{0:n2}",3.14159 ));
    MessageBox.Show(string.Format("{0:n2}", 2.669466)); //==> Output : 2.67


    نقل قول نوشته شده توسط hassan_kahrizy مشاهده تاپیک
    البته من نمی خواهم اون عدد رو round کنم
    مثلا می خواهم عدد 2.669466 بشه 2.66
    از این روشا بله خیلی زیادن ... ولی همشون متد ToString رو صدا میزنن که اونم خروجیشو Round میکنه ...
    تنها روش استفاده از string خالیه ...

                decimal d = 12.66666m;

    string tempStr = d.ToString();
    if (tempStr.Split('.')[1] != null)
    tempStr = tempStr.Split('.')[0] + "." + tempStr.Split('.')[1].Substring(0, 2);
    آخرین ویرایش به وسیله exlord : چهارشنبه 04 اسفند 1389 در 21:29 عصر

  6. #6

    نقل قول: نحوه حذف تعداد اعشار مورد نطر از اعداد اعشاری

    بسمه تعالی
    با سلام
    از دوستان متشکرم خیلی لطف کردید
    ولی دنبال راهی با توابع ریاضی می گشتم فکر می کردم چنین چیزی تو توابع ریاضی دات نت طراحی شده باشه

  7. #7
    کاربر جدید
    تاریخ عضویت
    آبان 1385
    محل زندگی
    مشهد
    پست
    17

    نقل قول: نحوه حذف تعداد اعشار مورد نطر از اعداد اعشاری

    نقل قول نوشته شده توسط محسن شامحمدی مشاهده تاپیک
    نه بابا چی چی رو راه نداره.
    این هم کد گرفتن 2 رقم اعشار
     MessageBox.Show(string.Format("{0:n2}",3.14159 ));


    این کد رو من تو سی شارپ زدم ولی یک error داد و اونم اینه که بجای عدد 3.14159 باید از یک رشته استفاده بشه

    البته وقتی من رشته گذاشتم بازم جواب نداد

    کسی نمیدونه چه تابعی یک عدد اعشار رو فقط تا دو رقم نشون میده ؟!؟!؟

  8. #8
    VIP آواتار gwbasic
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    تهران
    سن
    42
    پست
    982

    نقل قول: نحوه حذف تعداد اعشار مورد نطر از اعداد اعشاری

    دوستان کافی بود بجای این همه بحث یه نگاهی به کلاس Math می نداختین
    برای اینکه فقط قسمت عددی رو جدا کنین می تونین از متد Math.Trancate استفاده کنین
    چند تا متد مرتبط دیگه

    j = (int)Math.Round(13.3); // j = 13
    j = (int)Math.Round(13.8); // j = 14
    j = (int)Math.Round(12.5); // j = 12 Nearest Even
    j = (int)Math.Round(13.5); // j = 14 Nearest Even
    d = Math.Round(13.834, 2); // d = 13.83
    d = Math.Round(13.839, 2); // d = 13.84
    d = Math.Round(13.335, 2, MidpointRounding.AwayFromZero); // d2 = 13.3
    d = Math.Round(13.335, 2, MidpointRounding.ToEven); // d2 = 13.34
    j = (int)Math.Truncate(13.2); // j = 13
    j = (int)Math.Truncate(13.8); // j = 13
    j = (int)Math.Ceiling(13.2); // j = 14
    j = (int)Math.Floor(13.2); // j = 13

    j = Math.DivRem(13, 3,out i); // j = 4 , i = 1 Reminder


  9. #9
    کاربر جدید
    تاریخ عضویت
    آبان 1385
    محل زندگی
    مشهد
    پست
    17

    نقل قول: نحوه حذف تعداد اعشار مورد نطر از اعداد اعشاری

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

    ممنون دوست عزیز ، ولی این توابعی که شما نوشتید جواب سوال نیست
    چون تابه Round باعث روند شدن عدد ضمن جدا کردن دو رقم اعشار میشه
    مثلاً عدد 20.158 تبدیل به 20.16 میشه ولی ما می خوایم تبدیل به 20.15 بشه
    متوجه منظورم شدین ؟!؟!

  10. #10
    VIP آواتار gwbasic
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    تهران
    سن
    42
    پست
    982

    نقل قول: نحوه حذف تعداد اعشار مورد نطر از اعداد اعشاری

    گفتم که شما باید از TRancate استفاده کنید اگه دو رقم اعشار رو هم می خواین یه راه اینه که عددو در 100 ضرب کنید بعد TRancate کتید بعد بر 100 تقسیم کنید بقیه متدها ، متدهای مرتبط هستند که اشاره کردم

  11. #11
    کاربر جدید
    تاریخ عضویت
    آبان 1385
    محل زندگی
    مشهد
    پست
    17

    نقل قول: نحوه حذف تعداد اعشار مورد نطر از اعداد اعشاری

    نقل قول نوشته شده توسط gwbasic مشاهده تاپیک
    گفتم که شما باید از TRancate استفاده کنید اگه دو رقم اعشار رو هم می خواین یه راه اینه که عددو در 100 ضرب کنید بعد TRancate کتید بعد بر 100 تقسیم کنید بقیه متدها ، متدهای مرتبط هستند که اشاره کردم

    ممنون دوست عزیز
    منم اتفاقاً همین کار رو مجبور شدم انجام بدم
    خیلی لطف کردی
    منظور من این بود که اون دوستمون که تاپیک رو زده، میخواسته یک تابعی بهش معرفی کنیم که این کارها رو خودش انجام بده و ما مجبور نباشیم با کد نویسی ضرب و تقسیم بر 100 کنیم

    همگی موفق باشید

  12. #12

    نقل قول: نحوه حذف تعداد اعشار مورد نطر از اعداد اعشاری

    سلام دوستان عزیز
    روش یا تابعی هست که بدون هیچ روند کردنی ، اعشار را حذف کنه و عدد را به صورت صحیح به ما بده؟؟

  13. #13

    پاسخ: نحوه حذف تعداد اعشار مورد نطر از اعداد اعشاری بدون رند کردن عدد

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


    public static class HelperExtensions
    {
    public static double WithDecimalDigitsOf(this double d, int numberOfDigits=0)
    {
    var factor = Math.Pow(10, numberOfDigits);
    d *= factor;
    d = Math.Truncate(d);
    d /= factor;
    return d;
    }
    }

    public void UseOfNumberWithTwoDecimalDigits()
    {
    long Bytes = 32209599L; //sample number such as file-size
    int Mega = 1024 * 1024;
    var MBSize = ((double)Bytes / Mega) + " MB. (Original number)";
    var BadMBSize = ((double)Bytes / Mega).ToString("0.00") + " MB. (Bad: not good in all numbers)";
    var BetterMBSize = ((double)Bytes / Mega).WithDecimalDigitsOf(2) + " MB. (Better)";
    MessageBox.Show(MBSize + "\n\n" + BadMBSize + "\n" + BetterMBSize);
    }
    آخرین ویرایش به وسیله Mamadex : یک شنبه 17 اسفند 1393 در 17:59 عصر دلیل: Change CODE to CSHARP BB code

  14. #14
    کاربر دائمی آواتار امیر مهرشاد
    تاریخ عضویت
    آذر 1390
    محل زندگی
    بجنورد (پاریس کوچولو)
    پست
    686

    نقل قول: نحوه حذف تعداد اعشار مورد نطر از اعداد اعشاری



    float myFloat = 1.30452F;


    string part1 = myFloat.ToString("0.00");
    string part2 = myFloat.ToString().Substring(4, 2);
    string part3 = myFloat.ToString().Substring(6);


    MessageBox.Show(part1);
    MessageBox.Show(part2);
    MessageBox.Show(part3);

  15. #15
    کاربر دائمی آواتار امیر مهرشاد
    تاریخ عضویت
    آذر 1390
    محل زندگی
    بجنورد (پاریس کوچولو)
    پست
    686

    نقل قول: پاسخ: نحوه حذف تعداد اعشار مورد نطر از اعداد اعشاری بدون رند کردن عدد

    یک کلک ساده به هر اندازه اعشار میخوایید انتخاب کنید بالا اشاره کردم اینجا توضیح مبدم مثلا رقم اعشار ما هست 1.30452

    حالا میخوایم فقط 1.3 برگرده


    float myFloat = 1.30452F;


    string part1 = myFloat.ToString().Substring(0, 3);

    MessageBox.Show(part1);


  16. #16
    کاربر دائمی آواتار modern_amin
    تاریخ عضویت
    آذر 1389
    محل زندگی
    کنار شما !
    پست
    595

    نقل قول: نحوه حذف تعداد اعشار مورد نطر از اعداد اعشاری

    ببینید
    نمیخایم تبدیل شه یا رند شه
    چون باز جواب نمیده


    میخایم ماهیت عددی براش بمونه



    0.3 * 0.3 * 0.3 *0.3 = 1.2 باید بشه ولی میشه
    ولی میشه 0.0081

    اگر رند استفاده کنی میشه = 0

  17. #17
    کاربر دائمی آواتار modern_amin
    تاریخ عضویت
    آذر 1389
    محل زندگی
    کنار شما !
    پست
    595

    نقل قول: نحوه حذف تعداد اعشار مورد نطر از اعداد اعشاری

    decimal x = Math.Round(2.5555, 2); // x == 2.56

  18. #18
    کاربر دائمی آواتار fool66
    تاریخ عضویت
    آذر 1390
    محل زندگی
    Telegram.me/programmerirani
    پست
    576

    نقل قول: نحوه حذف تعداد اعشار مورد نطر از اعداد اعشاری

    سلام
    امیدوارم این کارتون رو راه بندازه

    Math.Truncate(2.669466*100)/100)

    خروجی
    2.66
    موفق باشید

  19. #19

    نقل قول: نحوه حذف تعداد اعشار مورد نطر از اعداد اعشاری

    نقل قول نوشته شده توسط fool66 مشاهده تاپیک
    سلام
    امیدوارم این کارتون رو راه بندازه

    Math.Truncate(2.669466*100)/100)

    خروجی
    2.66
    موفق باشید
    اقا منم دقیقا همین مشکل رو دارم.دستور شما رو به شکل زیر نوشتم تو برنامه.منتها اعشار کلا حذف شد!
    a= Math.Truncate(a*100)/100)
    که a متغییری هست از نوع دابل

  20. #20
    کاربر دائمی آواتار fool66
    تاریخ عضویت
    آذر 1390
    محل زندگی
    Telegram.me/programmerirani
    پست
    576

    نقل قول: نحوه حذف تعداد اعشار مورد نطر از اعداد اعشاری

    سلام
    نه درست کار میکنه مگه جایی رو اشتباه وارد کنید اینم نمونه که تست کردم براتون ضمیمه کردم
    موفق باشید
    فایل های ضمیمه فایل های ضمیمه

  21. #21

    نقل قول: نحوه حذف تعداد اعشار مورد نطر از اعداد اعشاری

    اقا دمت گرم جواب داد.البته من از این دستور زیر قبلا استفاده کرده بودم که جواب داده بود.دستور شما رو جایگزین اون کردم
    a= Math.Round(a, 2);
    textBox1.Text = a.ToString();

برچسب های این تاپیک

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

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