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

نام تاپیک: متغیر از نوع Decimal

  1. #1
    محروم شده
    تاریخ عضویت
    آبان 1386
    محل زندگی
    كره زمين
    پست
    8

    Tick متغیر از نوع Decimal

    انجمن رو جستجو کردم اما توو کلماتی که من جستجو کردم جوابی برای این سوال ندیدم، MSDN‌ رو تا جایی که تونستم گشتم اما جواب این سوال رو پیدا نکردم!‌ شاید من خوب نگشته باشم :

    متغیری با نوع Decimal توو زبانهای net. وجود داره که بارز ترین مشخصه اش وجود تعداد ارقام با معنی زیاد (27-28 رقم ) هست

    حتی جایی نکیه جالبی دیدم! توو تمام زبانها صادقه اما من مثال vb رو می نوسیم :

    Dim d AsDouble = 1.0003
    Dim sum AsDouble = 0
    Dim i AsInteger
    For i = 1 To 1000
    sum = sum + d
    Next
    textbox1.text = sum

    جواب برنامه بالا به شکل زیر خواهد بود!‌:
    1000.30000000002

    اما اگر متغیر از نوع decimal تعریف بشه! این مشکل حل میشه!


    اما استفاده از این متغیر در حالت عادی به این راحتی نیست! یعنی استفاده از اون به شکل زیر فقط شامل 14-15 رقم با مفهوم میشه
    Dim d AsDecimal
    d = 10 / 3
    TextBox1.Text = d
    جواب :
    3.33333333333333

    و اون رو باید به این شکل نوشت :
    Dim d AsDecimal
    d = 10D / 3
    TextBox1.Text = d
    که جوابی به شکل زیر میده :
    3.3333333333333333333333333333

    به عبارتی برای اینکه نشون بدیم عدد باید با ارقام زیاد باشه، باید جلوی مقدار دهی به اون از حرف D استفاده (d = 10D / 3) کنیم

    اما این موضوع وقتی برنامه ای بزرگ می نویسیم مشکل ساز میشه ، به فرض برنامه ای نوشتم برای محاسبه ماتریس های مختلط اما می خواستم ارقام اعشار اون بالای 25 تا باشه که متاسفانه در جاهای مختلف مشکلات زیادی برام به وجود آورد!

    سوال من اینه که آیا راهی هست که به طور پیشفرض به سیستم بگیم همه decimal هارو از نوع 27 رقمی به صورت پیشفرض بدون نیاز به حرف D در نظر بگیره ؟

  2. #2
    محروم شده
    تاریخ عضویت
    آبان 1386
    محل زندگی
    كره زمين
    پست
    8
    جوابی که بالاخره خودم پیدا کردم :

    به جای علامتهای ضرب و تقسیم و ... از عملگرهای تعریف شده خوده Decimal باید استفاده کرد یعنی به جای :
     
    Dim a AsDecimal
    a = 10 / 3


    باید بنویسیم :

    Dim a AsDecimal
    a = Decimal.Divide(10, 3)

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

  1. ارسال Decimal روی پورت
    نوشته شده توسط programmable در بخش C#‎‎
    پاسخ: 3
    آخرین پست: جمعه 05 بهمن 1386, 01:03 صبح
  2. فرق bigint و decimal به عنوان PK و تاثیر آن در کارایی
    نوشته شده توسط Microsoft.net در بخش SQL Server
    پاسخ: 4
    آخرین پست: شنبه 24 شهریور 1386, 13:26 عصر

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

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