چجوری ميشه تو #c يه string رو که مقدار منفی مثل "-25" رو به float يا double تبديل کرد.
من خودم با ToDouble تبديل ميکنم، برای عدد مثبت مشکلی نداره ولی برای عدد منفی Exception ميده با اين عنوان:
Input string was not in a corret format.
Printable View
چجوری ميشه تو #c يه string رو که مقدار منفی مثل "-25" رو به float يا double تبديل کرد.
من خودم با ToDouble تبديل ميکنم، برای عدد مثبت مشکلی نداره ولی برای عدد منفی Exception ميده با اين عنوان:
Input string was not in a corret format.
سلام.
این دو کد با هم تفاوت دارن.
دلیلش هم در محل علامت - هست.
احتمالا شما به این شکل استفاده میکنید:
کد:
string strDouble = "25-";
double dDouble = System.Convert.ToDouble(strDouble);
که صحیحش اینه :
کد:
string strDouble = "-25";
double dDouble = System.Convert.ToDouble(strDouble);
نه دوست عزيز اون منفی توی سايت برعکس شده، و مشکل از اون نيست.
من با textbox ميخوام از کاربر عدد بگيرم و بعد، از اون عدد استفاده کنم ولی وقتی توی textbox کليد - رو ميزنم exception ميده.
دوباره سلام.
Input string was not in a corret format
این error مشخصا میگه شما دارید از format درستی برای convert استفاده نمیکنین.
کد زیر رو ببینید:
من این کد رو تست کردم. درست کار میکنه. چه رشته اعداد منفی و چه رشته ی اعداد مثبت رو به Doubleکد:double dDouble = Convert.ToDouble(textBox1.Text);
تبدیل میکنه. در ضمن سوالی از شما داشتم:
شما برای TextChange Event و یا Event دیگری از TextBox برنامه نوشتید؟ که با زدن - این exception دادهنقل قول:
وقتی توی textbox کليد - رو ميزنم exception ميده.
میشه؟ ممکنه برنامتون رو برام بفرستید؟
private void txtFeb1_TextChanged(object sender, EventArgs e)
{
x[1].first = System.Convert.ToDouble(txtFeb1.Text);
}
دوباره سلام.
وقتی شما از این Event استفاده می کنین با هر ضرب کلیدی که در TextBox زده میشه یک بار این
Event اجرا میشه و وقتی اولین کلید "-" باشه , نمیتونه به double تبدیل بشه. میتونید از یه شرط ساده
استفاده کنین. مثل کد زیر :
کد:
private void Change_TXT(object sender, EventArgs e)
{
if (textP.Text != "-")
dDouble = Convert.ToDouble(textP.Text);
}
private double dDouble;
مي تونيد از اين دستور استفاده كنيد
double double_var = double.Parse( string_var ); 1
يعني مثلا
double X = double.Parse( "-3.14" );
ضمنا
int X = int.Parse( "-95" );
دوباره سلام.
ممنون از "vpezeshkian"
اما دوستمون هم از این روش استفاده میکردن. مشکل اینجا بود که از این متود در TextChange Event
استفاده میکردن. به پست قبلی مراجعه کنین.