تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 4 از 4

نام تاپيک: يه مشكل عجيب

  1. #1
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Mar 2007
    پست ها
    445

    پيش فرض يه مشكل عجيب

    من يه برنامه دارم تو VB.netكه كه 4 تا فرم داره ولي وقتي به فرم 4 مي رم و با دكمه‌ي Back به عقب بر ميگردم اندازه فرم 3 كوچك ميشه يعني فقط همون titlebar نشون داده ميشه؟ كسي مي دونه چرا؟ و اينكه چجوري اين مشكلو رفع كنم
    PrivateSub Btn_Back_page4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Back_page4.Click
    Me.Hide()
    Page3.Show()
    EndSub

  2. #2
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Mar 2007
    پست ها
    445

    پيش فرض

    واي خداي من اعصابم داره خرد ميشه

    Public Lumen, Number_lamp_Buble As Int16
    Public NumBer_lamp As Int16
    dim index as int16=0

    Delta_Fi = ((fi - ((NumBer_lamp + index) * Number_lamp_Buble * Lumen)) / fi) * 100

    ايا ميشه اين خط OverFlowException بده؟ ولي داره ميده كسي ميدونه چزا؟
    lumen=2900 و NumBer_lamp=8
    fi=45186 ,number_lamp_buble=2
    Delta_Fi=2%
    Last edited by Nakh0d4; 14-07-2010 at 06:06.

  3. #3
    کاربر فعال انجمن دات نت عــــلی's Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    زیر سایه عرش الهی
    پست ها
    2,335

    پيش فرض

    سلام دوست عزیز.
    سوالاتون یه خورده عجیب به نظر میرسه.
    اگه مشکل سوال اولتون حل نشده لطفاً کدهاتونو بزارید.
    در مورد سوال دوم هم باید بگم بستگی به داده های ورودی داره.
    شما از Int16 استفاده کردید.میتونید از Int32 یا Int64 استفاده کنید.

    موفق باشید.

  4. #4
    پروفشنال bad_boy_2007's Avatar
    تاريخ عضويت
    Aug 2006
    محل سكونت
    ایران
    پست ها
    803

    پيش فرض

    سوال اولت کمی مبهمه ولی دومی مشکل از شماست .

    نوع داده Int16 به میزان 2 به توان 16 یعنی 65536 برای داده های بدون علامت و 32767 برای داده های علامت دار ذخیره میکنه .

    تبدیل نوع ، همونطور که میدونید در VB بر خلاف C# تبدیل نوع ها بصورت ضمنی انجام میشود و باید کمی با دقت بیشتر به نوع داده ها توجه کرد . شیوه تبدیل نوع در VB به این صورت است که کامپایلر بصورت اتومات نوع داده بزرگتر را به صورت نوع داده تبدیل شده محاسبه میکند .

    چند مثال :

    Dim Int16_2 as Int16
    dim Int16_1 as Int16
    Dim DBL as Doubl

    int_16*int_16 ---> int16
    Int16 * DBL ---> Double
    int_16/2 ----> int16
    int_16/2.2 ----> Double
    int_16*int_16 ----> int_16


    ابتدا باید این عبارت محاسبه شود :
    ((NumBer_lamp + index) * Number_lamp_Buble * Lumen))

    نتیجه محاسبه فوق باید در نوع داده Int16 ذخیره شود که باتوجه به اینکه بزرگتر از 32767 میشود پس نتیجه محاسبات منجر به OverFlow خواهد شد .

    راهکار :
    1- ابتدا تقسیم را نجام دهید ، سپس ضرب را
    2-نتیجه محاسبه ضرب را در نوع داده بزرگتر ذخیره کنید (یا از تبدیل نوع های ضمنی استفاده کنید Ctype - CDouble و ...)

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •