الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة فى تحويل البيانات من النوع String To Double Or Float

بدأه محمد الامين في 18 يناير 2010 · 3 رد · 507 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لدى مشكلة غريبة ولم اجد لها حلا

انا استقبل 40 بايت عن طريق المنفز التسلسلى

buffer[x] = (byte) sp.ReadByte();

واقوم بتحويل هزه البايتات الى اسكى كود بنجاح

gps = System.Text.Encoding.ASCII.GetString(buffer);

عندما اعرض المتغير gps

على ليبل تكون البيانات صحيحة ولايوجد اى خطا

الخطوة التاليه حى فرز هذه البيانات وتحميلها على مجموعة متغيرات

gps = "1234.1234,n,6666.444,e,123.1,22.4"

عن طريق الدالة سبليت

string[] gpsTokens = gps.Split(',');

اذا

gpsTokens[0

تساوى

1234.1234

وهذا صحيح وحتى هذه الخطوه البرنامج يعمل بصورة ممتازة

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

TLAT = double.Parse(gpsTokens[0]);

عندما اقوم بحزف الفاصلة العشرية من البيانات المرسلة وتصبح

gpsTokens[0

تساوى

12341234

يتم تحويلها بدون اى خطاء

يعنى المشكلة فى الفاصلة العشرية

هل انا اخترت الانكود غير المناسب ؟ ام ماهى اختراحاتكم اخوانى

انا استخدم فيجول استوديو 2008 الاصدار التاسع

عن أبي هريرة رضي الله عنه عن النبي صلى الله عليه وسلم أنه قال: سيأتي على الناس زمان سنوات خداعات: يصدق فيها الكاذب ويكذب فيها الصادق، ويؤتمن فيها الخائن ويخون فيها الأمين، وينطق فيها الرويبضة. قيل يا رسول الله وما الرويبضة؟ قال: الرجل التافه ينطق في أمر العامة . رواه احمد والحاكم وصححه الالبانى من حديث ابى هريره.‏

#2

بعد البحث والتقيب تم حصر المشكلة هنا

لايمكننى تحويل اى متغير من النوع سترنق يحتوى على فاصلة عشرية مباشرة الى دبل او فلوت

"TLAT = System.Convert.ToDouble("12.9);

تكون تظهر رسالة خطاء (خطاء فى الفورمات)

ولكن اذا غيرت االرقم الى رقم صحيح تكون الاجابة صحيحة

ماهو السبب :)

عن أبي هريرة رضي الله عنه عن النبي صلى الله عليه وسلم أنه قال: سيأتي على الناس زمان سنوات خداعات: يصدق فيها الكاذب ويكذب فيها الصادق، ويؤتمن فيها الخائن ويخون فيها الأمين، وينطق فيها الرويبضة. قيل يا رسول الله وما الرويبضة؟ قال: الرجل التافه ينطق في أمر العامة . رواه احمد والحاكم وصححه الالبانى من حديث ابى هريره.‏

#3

يأخي الكود شغال تمام بوجود النقطة العشرية وبدونها...

يبدو أن هناك شيء اخر خطأ..

1

قولوا لا اله الا الله تفلحوا

ومن يبتغي غير الاسلام دينا فلن يقبل منه وهو في الاخرة من الخاسرين- صدق الله العظيم

#4
اقتباس

يأخي الكود شغال تمام بوجود النقطة العشرية وبدونها...

يبدو أن هناك شيء اخر خطأ..

ماهو دا المجننى :wacko:

لكن الحمد لله تعالى عرفت المشكلة :happy:

المشكلة فى اعدادات اللغة فى الكمبيوتر كانت موضوعة على الالمانية وبعتبر الفاصلة (, ) هى النقطة العشرية وليس (.) لكن بعد تحويل اللغة الى الانجليزية البرنامج رجع يعمل بصورة سليمة والحمدلله

شكرا على مداخلتك

عن أبي هريرة رضي الله عنه عن النبي صلى الله عليه وسلم أنه قال: سيأتي على الناس زمان سنوات خداعات: يصدق فيها الكاذب ويكذب فيها الصادق، ويؤتمن فيها الخائن ويخون فيها الأمين، وينطق فيها الرويبضة. قيل يا رسول الله وما الرويبضة؟ قال: الرجل التافه ينطق في أمر العامة . رواه احمد والحاكم وصححه الالبانى من حديث ابى هريره.‏

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…