2012-01-03 6 views
2

私は基本的にビジュアルスタジオ2008で基本的なコンバータを書こうとしています。私は2つのテキストボックスを持っています.1つはユーザーからの入力を受け取り、もう1つは結果を出力します。ボタンを押すと、最初のテキストボックスからの入力を4.35倍にして2番目のテキストボックスに表示します。これは、これまでにボタンのコードで私のコードです:テキストボックス文字列をfloatに変換しますか?

   String^ i1 = textBox1->Text; 
      float rez = (i1*4.35)ToString; 
      textBox2->Text = rez; 

私は、これらのエラーを取得していますが:

f:\microsoft visual studio 9.0\projects\hellowin\hellowin\Form1.h(148) : error C2676: binary '*' : 'System::String ^' does not define this operator or a conversion to a type acceptable to the predefined operator 
f:\microsoft visual studio 9.0\projects\hellowin\hellowin\Form1.h(148) : error C2227: left of '->ToString' must point to class/struct/union/generic type 
f:\microsoft visual studio 9.0\projects\hellowin\hellowin\Form1.h(149) : error C2664: 'void System::Windows::Forms::Control::Text::set(System::String ^)' : cannot convert parameter 1 from 'float' to 'System::String ^' 

私はそれはいくつかの入力を取得することがいかに途方もなく難しいの非常識つもりです助けてくださいC++のテキストボックスから。私は私が持っていたすべてのエラーを探知して有用なものは何も出てこなかった、私はすでに1時間の答えを検索してきた、助けてください。あなたのためにそれを修正

答えて

7

  String^ i1 = textBox1->Text; 
     float rez = (float)(Convert::ToDouble(i1)*4.35); 
     textBox2->Text = rez.ToString(); 

は基本的に、あなたは、実際の数にあなたの文字列を変換計算を行う、その後、目的を表示するための文字列に戻ってそれを作りたいです。

+0

!ありがとうございました。私はStackoverflowで10分で私が1時間探していたものが見つかりました。再度、感謝します! – Bugster

+0

はい、私もこのサイトのファンです:) – Blindy

+0

はい、それは本当に素晴らしいです、私は3分であなたの答えを受け入れるでしょう(タイマーが私にそれをさせるとき) EDIT:受け入れ、ありがとう。 – Bugster

1

文字列にdoubleを掛けようとしていますが、それを行う方法を定義する演算子はありません。文字列を最初にdoubleに変換してから計算に使用する必要があります。

次に、文字列を浮動小数点に割り当てようとしていますが、これはナンセンスです。フロートを計算してから、テキストボックスのテキストフィールドに代入するときに文字列に変換する必要があります。以下のような

何か:それは作品

String^ i1 = textBox1->Text; 
float rez = (Convert::ToDouble(i1)*4.35); 
textBox2->Text = rez.ToString(); 
+0

ありがとうございましたが、私の質問は既に答えられていますが、あなたはあなたの努力のために+1の価値があります。 – Bugster

+0

ええ、あなたはここで素早くしなければならない! :) – StevieG

関連する問題