PDA

View Full Version : سوال: تبدیل رشته به double



mhmd.tv
شنبه 25 آبان 1392, 18:44 عصر
یه عدد دارم مثلا به صورت 25.456324 (این عدد طی محاسباتی روی عددی که از کاربر گرفته می شود به دست می آید).
عدد فوق به صورت رشته است و من می خواهم آن را به صورت double در بیاورم.
از تابع double.parse که استفاده می کنم میگه format عدد وارد شده صحیح نیست. و در این تابع معنای ممیز را نمی فهمد
چه کار کنم تا بتونم عددم رو که ممیز داره از حالت رشته به DOUBLE درآورم؟

امیر مهرشاد
شنبه 25 آبان 1392, 18:55 عصر
بفرمایید مشکلی بود بگید راهنماییتون کنم



string s = "25.456324";
double result = Convert.ToDouble(s);
MessageBox.Show(result.ToString());

amir200h
شنبه 25 آبان 1392, 19:14 عصر
یه عدد دارم مثلا به صورت 25.456324 (این عدد طی محاسباتی روی عددی که از کاربر گرفته می شود به دست می آید).
عدد فوق به صورت رشته است و من می خواهم آن را به صورت double در بیاورم.
از تابع double.parse که استفاده می کنم میگه format عدد وارد شده صحیح نیست. و در این تابع معنای ممیز را نمی فهمد
چه کار کنم تا بتونم عددم رو که ممیز داره از حالت رشته به DOUBLE درآورم؟

این مربوط میشه به نمایش ممیز در کشورهای مختلف. برای راحتی کار بهتره بجای ممیز از . استفاده کنی

mhmd.tv
شنبه 25 آبان 1392, 19:21 عصر
بفرمایید مشکلی بود بگید راهنماییتون کنم



string s = "25.456324";
double result = Convert.ToDouble(s);
MessageBox.Show(result.ToString());



این رو هم نوشتم
زمانی که به تابع convert.todouble می رسه پیغام زیر رو میده:
input string was not in a correct format

mhmd.tv
شنبه 25 آبان 1392, 19:22 عصر
این مربوط میشه به نمایش ممیز در کشورهای مختلف. برای راحتی کار بهتره بجای ممیز از . استفاده کنی

اگه دقت کنید منم توی عددم به جای ممیز از . استفاده کردم

amir200h
شنبه 25 آبان 1392, 19:30 عصر
اگه دقت کنید منم توی عددم به جای ممیز از . استفاده کردم

بفرما

string a = "23.541";
double n = Convert.ToDouble(a);
MessageBox.Show(n.ToString());

mhmd.tv
شنبه 25 آبان 1392, 19:36 عصر
بفرما

string a = "23.541";
double n = Convert.ToDouble(a);
MessageBox.Show(n.ToString());

من گفتم زمانی که به تابع Convert.ToDouble می رسه باز هم ارور میده
توی پست قبلی این رو گفتم

amir200h
شنبه 25 آبان 1392, 19:44 عصر
والا اینجا که کار میکنه :لبخند:
اینو امتحان کن
string a = "23.541555555555";
double n = double.Parse(a, System.Globalization.NumberStyles.AllowDecimalPoin t);
MessageBox.Show(n.ToString());

mhmd.tv
شنبه 25 آبان 1392, 20:00 عصر
والا اینجا که کار میکنه :لبخند:
اینو امتحان کن
string a = "23.541555555555";
double n = double.Parse(a, System.Globalization.NumberStyles.AllowDecimalPoin t);
MessageBox.Show(n.ToString());

این رو هم تست کردم نشد
دوباره همون ارور قبلی رو میده
از using خاصی که نباید استفاده کنم یا تنظیم خاصی رو انجام بدم.
این رو هم بگم، بعد از اینکه تبدیل به عدد double می کنم توی یکی از متغیر های یه structure ذخیره می کنم.
خواهشا یه راهی پیشنهاد بدید.

mze666
شنبه 25 آبان 1392, 20:16 عصر
این رو هم امتحان کنید:
double.Parse("23.541555555555", System.Globalization.CultureInfo.InvariantCulture) ;

علی متقی پور
شنبه 25 آبان 1392, 22:54 عصر
با سلام

اینهمه پست گذاشتید یکبارش کد خودتون رو هم میذاشتید تا بقیه ببیند. قاعدتا نباید هیچ مشکلی وجود داشته باشه. احیانا از متد Trim() هم استفاده کنید

mhmd.tv
شنبه 25 آبان 1392, 23:11 عصر
این هم از کد خودم:
datasensor.Humidity = double.Parse(humidity, System.Globalization.CultureInfo.InvariantCulture) ;
datasensor نام structure ام هست و humidity نام رشته ای است که می خواهم به عدد double تبدیل کنم
قطعه کد بالا رو با یه عدد که به صورت دستی نوشتم کار کرد اما زمانی که خواستم با humidity به عنوان یکی از ورودی های تابع کار کنم با پیغام زیر روبرو شدم:
Object reference not set to an instance of an object
برای رفع این پیغام باید چه کار کنم؟
ممنون از راهنمایی دوستان

علی متقی پور
یک شنبه 26 آبان 1392, 02:07 صبح
اینطور پیغام زمانی رخ میده که یکی از اشیاء شما، همچنان نال باشن (بدلیل شکست خوردن کانستراکتور یا ...).
شما کافیه کد رو تریس کنی و ببینی آیا در زمان اجرا کد اصولا استراکچر شما ساخته شده یا نه مقدار ناله. اگر نال باشه طبیعتا پراپرتی Humidity را نداره که بخواد مقدار دهیش کنه و طبیعتا خطا میده