PDA

View Full Version : تبدیل رشته به عدد



h_b_h_91
دوشنبه 07 مرداد 1387, 10:14 صبح
سلام
من با دستور زیر اومدم یه رشته رو به عدد تبدیل کردم

x = 0
For i = 1 To 100
If A(i) > 0 Then
x = x * 10
x = x + A(i)
End If
Next i

:عصبانی:اما مشکلی که وجود داره اینه که هر کدام از A(i) هام هر کاراکتری رو در مکان i ام نشون می ده و من نمی دونم چه جوری اینو باید تعریف کنم . من این کارو برای این می خوام انجام دم تا بتونم اعداد بیشتر از 10 رقمی را در text box تایپ کنم بنابراین نه می تونم از تابع val استفاده کنم و نه از cdbl چون اینا رشته رو به double تغییر می دن و double هم بیشتر از عدد 10 رقمی نمی گیره و اگه بیشتر بشه دستور over flow می ده من یه نمادی لازم دارم که با اون کاراکتری رو که مثلا در مکان i هست رو برای vb معرفی کنه . چیزی که به جای A(i) بشینه. لطفا یکی کمکم کنه!!!!!!!!

اوبالیت به بو
دوشنبه 07 مرداد 1387, 10:40 صبح
با آرايه امتحان كردين؟

h_b_h_91
سه شنبه 08 مرداد 1387, 19:33 عصر
آخه یکی نیست به من جواب بده؟؟؟؟؟؟؟؟؟؟!!!!!!!!!!!!!!

ƒxmahdi
سه شنبه 08 مرداد 1387, 22:56 عصر
این کد شما هیچ نشونه ای از تبدیل رشته به عدد نیست من هم که نفهمیدم دقیقا چه کار می خواهید انجام بدهید بهتر توضیح بدین که من و دوستان بتونیم کمک کنیم

parsajey
سه شنبه 08 مرداد 1387, 23:52 عصر
سلام h_b_h_91 عزیز
واضح تر بنویسید که چه کرده اید و چه می خواهید بکنید

h_b_h_91
چهارشنبه 09 مرداد 1387, 08:35 صبح
با عرض سلام خدمت دوستان
ببخشید اگه نتونستم منظورمو بگم :خجالت:. من می خوام برای تشخیص این که یه عدد کامله(عددی که مجموع مقسوم علیه های اون به جز خودش برابر خوده عدد می شه مثل 6=1+2+3) یا نه عدد مورد نظر رو تویه text boxام (که اسمش txt1) می نویسم اما مشکل این جاست که اعداد کامل خیلی سریع رشد می کنن و خیلی سریع به عدد بزرگتر از 10 رقم می رسند به طوری عدد 7امین بیشتر از 10 رقم داره از هر متغییر عددی هم که استفاده کردم بیشتر از 10 رقم نمی گیره و اگر بیشتر از این رقم تایپ شه vb پیغامه over flow می ده پس اگر y= txt10Text ، y را به صورت string تعریف کردم که بتونه هر مقدار رقمی رو بگیره برای اینکه رشتمو به عدد تبدیل کنم اومدم گفتگم x اون عددی باشه که بعد از تبدیل شدنه رشته به عدد داریم اگه از سمت چپ عدد اولی را بگیریم در 10 ضرب می کنیم و با عدد کناریش جمع می کنیم(البته بعد از مرحله اول چون x اول صفره ) خلاصه این مطلب در کد بالا اومده حالا من نمی دونم که چه جوری اینو تعریف کنم( یعنی عدد اولی یا دومی یا ... از سمت چپ رو چه جوری تعریف کنم !!!) :گریه::گریه:
نهایت سعیمو برای تعریف مسئله کردم حالا شما لطفا کمک کنید !!!!!! اگه مشکلی در فهمیدنش بود دوباره بگین !!!!!

h_b_h_91
پنج شنبه 10 مرداد 1387, 08:44 صبح
چرا هیچ کس به سوالم جواب نمی ده :متعجب:فکر نکنم سوال سختی باشه !!!!!!!!!!!!!

h_b_h_91
پنج شنبه 10 مرداد 1387, 12:29 عصر
چرا همکاری نمی کنید ؟؟؟؟؟؟؟؟؟؟:متعجب: اگه مشکل تو فهمیدن مسئلست بگین دوباره توضیح می دم !!! مشکل کجاست ؟؟؟؟؟:افسرده:

ƒxmahdi
پنج شنبه 10 مرداد 1387, 21:51 عصر
نه اصلا سوال شما حل کردنش سخت نیست فهمیدنش با توجه به نوشته شما سخته ببین دوست من شما خیلی زیاد و پیچیده توضیح می دهید به طوری گیچ کننده است به همین دلیل است که شما جواب نمی گیرید. کوتاه و قابل فهم بنویس .

drwatson
شنبه 12 مرداد 1387, 13:07 عصر
با عرض سلام خدمت دوستان
ببخشید اگه نتونستم منظورمو بگم :خجالت:. من می خوام برای تشخیص این که یه عدد کامله(عددی که مجموع مقسوم علیه های اون به جز خودش برابر خوده عدد می شه مثل 6=1+2+3) یا نه عدد مورد نظر رو تویه text boxام (که اسمش txt1) می نویسم اما مشکل این جاست که اعداد کامل خیلی سریع رشد می کنن و خیلی سریع به عدد بزرگتر از 10 رقم می رسند به طوری عدد 7امین بیشتر از 10 رقم داره از هر متغییر عددی هم که استفاده کردم بیشتر از 10 رقم نمی گیره و اگر بیشتر از این رقم تایپ شه vb پیغامه over flow می ده پس اگر y= txt10Text ، y را به صورت string تعریف کردم که بتونه هر مقدار رقمی رو بگیره برای اینکه رشتمو به عدد تبدیل کنم اومدم گفتگم x اون عددی باشه که بعد از تبدیل شدنه رشته به عدد داریم اگه از سمت چپ عدد اولی را بگیریم در 10 ضرب می کنیم و با عدد کناریش جمع می کنیم(البته بعد از مرحله اول چون x اول صفره ) خلاصه این مطلب در کد بالا اومده حالا من نمی دونم که چه جوری اینو تعریف کنم( یعنی عدد اولی یا دومی یا ... از سمت چپ رو چه جوری تعریف کنم !!!) :گریه::گریه:
نهایت سعیمو برای تعریف مسئله کردم حالا شما لطفا کمک کنید !!!!!! اگه مشکلی در فهمیدنش بود دوباره بگین !!!!!
سلام
راستش من منظورتو درست نفهمیدم چون شما استعداد عجیبی در پیچیده کردن موضوع دارید:متعجب:
اما فرضا اگه شما بخواین یه رشته رو بگیرین و به صورت یه عدد در بیارین
یه نمونه واسطون میذارم که خیلی ابتداییه:بامزه::بامزه:
شاید منظورتون اینه:متفکر:

ASKaffash
شنبه 12 مرداد 1387, 18:05 عصر
سلام
من با دستور زیر اومدم یه رشته رو به عدد تبدیل کردم

x = 0
For i = 1 To 100
If A(i) > 0 Then
x = x * 10
x = x + A(i)
End If
Next i


:عصبانی:اما مشکلی که وجود داره اینه که هر کدام از A(i) هام هر کاراکتری رو در مکان i ام نشون می ده و من نمی دونم چه جوری اینو باید تعریف کنم . من این کارو برای این می خوام انجام دم تا بتونم اعداد بیشتر از 10 رقمی را در text box تایپ کنم بنابراین نه می تونم از تابع val استفاده کنم و نه از cdbl چون اینا رشته رو به double تغییر می دن و double هم بیشتر از عدد 10 رقمی نمی گیره و اگه بیشتر بشه دستور over flow می ده من یه نمادی لازم دارم که با اون کاراکتری رو که مثلا در مکان i هست رو برای vb معرفی کنه . چیزی که به جای A(i) بشینه. لطفا یکی کمکم کنه!!!!!!!!

سلام
کی گفته تا 15 رقم نمیشه :


Dim x As Variant
x = CDbl(123456789012345#)
Me.Caption = x

h_b_h_91
یک شنبه 13 مرداد 1387, 09:07 صبح
سلام
راستش من منظورتو درست نفهمیدم چون شما استعداد عجیبی در پیچیده کردن موضوع دارید:متعجب:
اما فرضا اگه شما بخواین یه رشته رو بگیرین و به صورت یه عدد در بیارین
یه نمونه واسطون میذارم که خیلی ابتداییه:بامزه::بامزه:
شاید منظورتون اینه:متفکر:

از کمکتون متشکرام اما اگه بشه دربارش توضیح بدین ممنون می شم :لبخندساده: در ضمن این کدی که شما پیشنهاد دادین تنها برای عدد 1 رقمیم که 6 هست محاسباتم درباره اینکه عدد کامله یا نه درست در می آد:عصبانی: و حتی برای عدد دو رقمیم که 28 است درست در نمی آد !!!!!!!!! اگه کل کدمو لازم دارین بگین تا بذارم!!!

h_b_h_91
یک شنبه 13 مرداد 1387, 09:20 صبح
نه اصلا سوال شما حل کردنش سخت نیست فهمیدنش با توجه به نوشته شما سخته ببین دوست من شما خیلی زیاد و پیچیده توضیح می دهید به طوری گیچ کننده است به همین دلیل است که شما جواب نمی گیرید. کوتاه و قابل فهم بنویس .

نمونه قابل فهم و کوتاه :
من می خوام بدونم که در یک رشته در vb هر کاراکتر رو با چی نشون می دن ؟؟؟؟؟؟؟؟:متفکر:
مثلا: "1234" یه رشته باشه برای اینکه بگم 1 اولین عدد در رشتمه A،A(1)=1ها رو چی تعریف کنم تا برای vb تعریف شده باشه؟؟؟؟؟؟

drwatson
یک شنبه 13 مرداد 1387, 20:31 عصر
سلام
دوست من اون الگوریتم تبدیل یه رشته به یه عدده نه تشخیص عدد کامل یا چیزی مثل اون
البته میتونی این خط رو توش تغییر بدی شاید بکارت بیاد
ary(i) = Val(Right(num, 3))
یعنی از تابع val استفاده کنی البته چون من هنوز منظورتو نگرفتم
نمیدونم بدرد بخوره یا نه
من همیشه برای تبدیل رشته به عدد از val استفاده میکنم به هیچ روشی هم نیاز ندارم

البته اگه میخوای به رقمهای درون رشته دسترس پیدا کن (تک تک)
میتونی از توابع ,Mid,left,right استفاده کنی

h_b_h_91
سه شنبه 15 مرداد 1387, 08:43 صبح
سلام
مشکل قبلی حل شد اما حالا مشکلی دیگه درباره mod به وجود اومده:عصبانی: اگه می شه برای دیدن مشکله جدید به تاپیکه چرا over flow می ده برین ؟؟؟
متشکرم