اطلاعیه

Collapse
No announcement yet.

عدد اعشاری

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

    عدد اعشاری

    من یک عدد اعشاری دارم. وقتی اونو ضرب در 10 میکنم. حاصل اشتباه میشه.یعنی رقم یکان و اعشارهای عدد جدید درست نسیت.
    هر دو عدد هم با فرمت single هستند.
    خیلی عجیبه!!!!!!!!!!
    Be sure your sin will find you out

    #2
    پاسخ : عدد اعشاری

    نوشته اصلی توسط مصطفی قلبی
    من یک عدد اعشاری دارم. وقتی اونو ضرب در 10 میکنم. حاصل اشتباه میشه.یعنی رقم یکان و اعشارهای عدد جدید درست نسیت.
    هر دو عدد هم با فرمت single هستند.
    خیلی عجیبه!!!!!!!!!!
    سلام.

    فرمتشون رو به Float تغییر بده، احتمالا درست می شن.

    دیدگاه


      #3
      پاسخ : عدد اعشاری

      سلام دوست عزیر
      من هم با همچین مشکلی توی Bascom برخورد کردم بعد فهمیدم این مشکل از کامپایلر هست و متاسفانه هیچ کاری نمشه کرد
      فقط میتونی با این روش که میگم مقدار این خطا رو به حداقل برسونی :smile:
      1- وقتی جواب نهایی رو به دست آوردی باید عدد جواب رو در 10 به توان مقدار رقم اعشاری که نیاز داری ضرب کنی مثلا برای 2 رقم اعشار باید در 100 ضرب کنی
      2- نتیجه بدست آمده رو به نزدیکترین مقدار صحیح Round میکنی
      3- عدد صحیح رو داخل یک متغیر String میریزی و 2 رقم پایانی اون رو جدا می کنی این دو رقم قسمت اعشار شما میشه
      4- مقدارهای به دست آمده رو روی یک یک String به صورت TTTT.RR مینویسید که TTTT قسمت صحیح و RR قسمت اعشاری می باشد
      5- حالا میتونی از این مقدار String استفاده کنی یا اون رو به یک مقدار Single تبدیل کنی :wow:

      فقط یادت باشه بعد از مرحله 2 عدد بدست آمده رو به 100 تقسیم نکنی چون دوباره همون مشکل قبل به وجود میاد

      موفق باشی

      دیدگاه


        #4
        پاسخ : عدد اعشاری

        واقعیت اینه که من میخوام یک عدد اعشاری رو با یک رقم اعشار ،روی lcd نمایش بدم.
        از دستور fusing هم استفاده کردم .اما این دستور هم اشکال داره.
        چطوری باید عدد رو توی string بریزم. من با بیسکام کار میکنم.
        یک بار دیگه توضیح میدی، چون خوب متوجه نشدم.
        Be sure your sin will find you out

        دیدگاه


          #5
          پاسخ : عدد اعشاری

          سلام
          از دستور زیر به جای fusing استفاده کن:
          کد:
          Config Single = Scientific , Digits = 1
          استفاده از عدد یک برای Digit باعث می شه که فقط یک اعشار برای آن در تمام حالتها ایجاد بشه منظور پرینت و LCD و محاسبه و...
          هیچگونه مشکلی هم نداره. به help بسکام هم برای دستور بالا یه نگاه بنداز.
          موفق باشی

          دیدگاه


            #6
            پاسخ : عدد اعشاری

            سلام دوست عزیز
            این روشی هم که دوست عزیز _e_ گفت درسته ولی باز هم دقیق نیست
            برای تبدیل هر عدد به String میتونی از این دتور استفاده کنی
            var = STR(x)' var is String
            فقط توجه داشته باش اندازه متغیر var به اندازه کافی باشد
            اگر باز هم مشکلی بود برنامتو بزار تا برات اصلاح کنم

            موفق باشی

            دیدگاه

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