PDA

View Full Version : over flow



afrashteh1
سه شنبه 26 آذر 1387, 18:49 عصر
دوستان من يه متغير به نام a از نوع double تعريف كردم ولي وقتي نتيجه محاسبات زير را مي خوام در اين متغير قرار دهم پيغام over flow را ميده
در صورتي كه حاصلش زياد هم نيست
dim a as double

a=365 * 24 * 3600

پيغام خطا :

run time error '6
overflow

afrashteh1
سه شنبه 26 آذر 1387, 19:06 عصر
دوستان راهنمايي كنيد به شدت نياز دارم

afrashteh1
سه شنبه 26 آذر 1387, 19:24 عصر
دوستان خواهش مي كنم

Yousha
سه شنبه 26 آذر 1387, 19:42 عصر
dim a as double

a=365 * 24 * 3600
پيغام خطا :
run time error '6
overflow


Year(Now) * 365 * 24 * 3600 + Day(Now) * 24 * 3600 + Hour(Now) * 3600 + Minute(Now) * 60 + Second(Now)
موفق باشید.

hamed aj
سه شنبه 26 آذر 1387, 22:48 عصر
دوستان من يه متغير به نام a از نوع double تعريف كردم ولي وقتي نتيجه محاسبات زير را مي خوام در اين متغير قرار دهم پيغام over flow را ميده
در صورتي كه حاصلش زياد هم نيست
dim a as double

a=365 * 24 * 3600

پيغام خطا :

run time error '6
overflow



با سلام

در واقع علت این خطا مربوط می شه به ضعف عملگر ضرب در VB 6 (البته به اعتقاد من):

شما مستقیماً از عدد در یک عبارت ریاضی استفاده کرده اید و قالبی برای اعداد در نظر نگرفته اید
اعداد شما در رنج integer هستند. تا وقتی حاصلضرب از مقدار integer فراتر نرود، مشکلی نیست اما وقتی حاصلضرب از محدوده integer بالاتر برود، آن وقت است که سریز زخ می دهد.


راه حل :

از متغیر برای تخصیص مقادیر اولیه استفاده کنید:





dim x, y, z as integer
dim a as long

x=365
y=24
z=3600

a=x*y*z



موفق باشید

Mbt925
چهارشنبه 27 آذر 1387, 00:22 صبح
Dim a As Double

a = CDbl(365) * 24 * 3600

afrashteh1
چهارشنبه 27 آذر 1387, 11:34 صبح
مرسي .
كار تابع cdbl چيه ؟

Mbt925
چهارشنبه 27 آذر 1387, 12:05 عصر
Convert to Double
تابعی برای تبدیل به نوع دابل

hossein_sh2008
سه شنبه 04 اسفند 1388, 21:46 عصر
Dim a As Double


a = CDbl(365) * 24 * 3600



بابا هر كار كردم نميشه كمك كنيد
dim a as double
((aa = CDbl(mohasebeGheymat1 * metr + ((mohasebeGheymat1 * sant) / 100