منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مشكله فى التحويل من string to int
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم ورحمة الله وبركاته 
لدى مشكله فى التحويل من نص الى قيمة رقمية
الصورة توضح القيمة الاولى هى رقمية والقمية الثانية نص ومحولة لرقمية كيف لى ان اجعل الرقيمة تبداء بصفر اعرف انه 
ليس له لازمة ولكن فى معادلة الصفر مهم فيها يبداء فية لان لازم تكون القيمة من 4 ارقام والا هيطلع نتائج غلط 
وشكرا مقدما لكم 
الكود المستخدم

كود :
           string myTime = DateTime.Now.ToString("ffff");

           int t1 = int.Parse(myTime);
           lbltime1.Text = t1.ToString();

           ts1.Text = myTime.ToString();

كود :
t1.ToString("0000")
(24-09-20, 05:29 PM)Anas Mahmoud كتب : [ -> ]
كود :
t1.ToString("0000")

انا اريدها قيمة رقمية تبداء بصفر وليس نص لانها هتدخل فى معادلة رياضية وشرط المعادلة تكون 4 ارقام يعنى بالمبسط 
احاد عشرات مئات احاد الالف 
وحتى وان كان احاد الالوف صفر
ما تطلبه غير ممكن ، ببساطة لان الرقم من نوع Integer سيظل كما هو ما يختلف هو فقط طريقة اظهاره كقيمة نصيه

الرقم من نوع Integer يتم تخزينه في 4 بايتات وبالتالي الموضوع اعمق من فكره اظهار الاصفار البادئة ليس لنا تحكم على طريقة تخزين الرقم كرقم ما يمكننا فعله هو تحويله لنص لنا تحكم فيه

ما يمكنك فعله هو التعديل على الدالة التي تقوم بالتعامل مع هذا الرقم واخذ الاحتياطات تجاه كون الرقم اصغر من 1000 ، تقوم باسناد قيمة المتغير المقابل لاحاد الالاف ب 0 وتتعامل

اذا كان متاح لك الكود ربما تضعه ونحاول القفز على المشكلة

بمعنى اخر :

الرقم 495 يتم تخزينه في الذاكرة على هيئة :

كود :
0x000001EF
او بالصورة الثنائية :

كود :
00000000 00000000 00000001 11101111

مانفعله عندما نقوم باستدعاء ToString هو ايجاد تمثيل نصي لهذه القيمة كما نحب ان نراها سواء :

495
495.0
0495
4.95E2

كلها تخزن بنفس الطريقة ك Integer ، لا يهتم النوع Integer بكيف تريد ان تظهر ارقامك ، هو فقط يهتم بالرقم نفسه 
اذا كان لديك مشكلة ان الرقم اصغر من 1000 عليك التعامل مع هذه المشكلة داخل الكود وليس على مستوى النوع Integer
(24-09-20, 05:44 PM)Anas Mahmoud كتب : [ -> ]ما تطلبه غير ممكن ، ببساطة لان الرقم من نوع Integer سيظل كما هو ما يختلف هو فقط طريقة اظهاره كقيمة نصيه

الرقم من نوع Integer يتم تخزينه في 4 بايتات وبالتالي الموضوع اعمق من فكره اظهار الاصفار البادئة ليس لنا تحكم على طريقة تخزين الرقم كرقم ما يمكننا فعله هو تحويله لنص لنا تحكم فيه

ما يمكنك فعله هو التعديل على الدالة التي تقوم بالتعامل مع هذا الرقم واخذ الاحتياطات تجاه كون الرقم اصغر من 1000 ، تقوم باسناد قيمة المتغير المقابل لاحاد الالاف ب 0 وتتعامل

اذا كان متاح لك الكود ربما تضعه ونحاول القفز على المشكلة

بمعنى اخر :

الرقم 495 يتم تخزينه في الذاكرة على هيئة :

كود :
0x000001EF
او بالصورة الثنائية :

كود :
00000000 00000000 00000001 11101111

مانفعله عندما نقوم باستدعاء ToString هو ايجاد تمثيل نصي لهذه القيمة كما نحب ان نراها سواء :

495
495.0
0495
4.95E2

كلها تخزن بنفس الطريقة ك Integer ، لا يهتم النوع Integer بكيف تريد ان تظهر ارقامك ، هو فقط يهتم بالرقم نفسه 
اذا كان لديك مشكلة ان الرقم اصغر من 1000 عليك التعامل مع هذه المشكلة داخل الكود وليس على مستوى النوع Integer
اخى البيثون لها حل اما سى شارب ما لقيت حل 
لان الدله الى تولد ارقام هى الملى ثانية واحاول تعديها عندما تكون 
495
0495
لازم تكون قيمة احاد الالوف هل من حل ضرورى او شى يفحص لاسناد صفر
اخي الكريم اخبرني بالاستخدام الذي تريده حتى اساعدك
(24-09-20, 07:56 PM)Anas Mahmoud كتب : [ -> ]اخي الكريم اخبرني بالاستخدام الذي تريده حتى اساعدك
قياس سرعة السيارات المركبات عبر مكتبة emgu cv فى خاصية انه يعمل خط عند ما تمر السيارة تحته يسجل الملى ثانية 
وخط اخر بعده تمر تحته يسجل الملى ثانية ويقسمهم على الف ليحولهم ثانية ثم تقسم على المسافة تخرج السرعة
طيب لو طرحنا مثلا 520 مللي ثانية من 1823 مللي ثانية يعطينا 1303 مللي ثانية

حتى لو طرحنا 1200 من 1203 والناتج 3

مازال رقم صالح ؟ اين المشكلة بالضبط ؟

اذا كانت الدالة تقبل Int فلن يكون هناك مشكلة

اعذرني اخي احاول الوصول للمشكلة ارجو التوضيح اكثر
(25-09-20, 10:37 AM)Anas Mahmoud كتب : [ -> ]طيب لو طرحنا مثلا 520 مللي ثانية من 1823 مللي ثانية يعطينا 1303 مللي ثانية

حتى لو طرحنا 1200 من 1203 والناتج 3

مازال رقم صالح ؟ اين المشكلة بالضبط ؟

اذا كانت الدالة تقبل Int فلن يكون هناك مشكلة

اعذرني اخي احاول الوصول للمشكلة ارجو التوضيح اكثر
صحيح ولكن احينا تاتى القيمة الاولى والثانية تبداء بصفر على اى حال حليت المشكله شكرا لك
طب اخبرنا ما الحل ، شكرا لك
الصفحات : 1 2