C++ 将文本框内容转换为浮点数
C++ Converting textbox content to a Float
仔细尝试了来自该线程的代码
Converting textbox string to float?
试图在评论中留下我的问题,但不允许这样做...
总结起来就像有两个文本框,从第一个获取数据,做一些事情,然后将结果返回给第二个。
String^ i1 = Textbox1->Text;
float rez = (float)(Convert::ToDouble(i1)*4);
Textbox2->Text = rez.ToString();
它工作得很好,除非 Textbox1
本身有一个浮点数(更新。它与 '65' 一起工作,但不适用于 '65.5')。
尝试执行该代码 - 破坏程序
> Calc.exe!Calc::Form1::Button0_Click(System::Object^ sender = 0x01b29c58, System::EventArgs^ e = 0x01b45e40) Line 123 + 0x30 byte C++
Using the ToDouble(String) method is equivalent to passing value to the Double.Parse(String) method. Value is interpreted by using the formatting conventions of the current thread culture.
所以,你需要
捕获可能的异常
try {
float rez = (float)(Convert::ToDouble(i1)*4);
}
catch (FormatException) {
// handle format error exception here
}
catch (OverflowException) {
// handle overflow exception here
}
仔细尝试了来自该线程的代码
Converting textbox string to float?
试图在评论中留下我的问题,但不允许这样做... 总结起来就像有两个文本框,从第一个获取数据,做一些事情,然后将结果返回给第二个。
String^ i1 = Textbox1->Text;
float rez = (float)(Convert::ToDouble(i1)*4);
Textbox2->Text = rez.ToString();
它工作得很好,除非 Textbox1
本身有一个浮点数(更新。它与 '65' 一起工作,但不适用于 '65.5')。
尝试执行该代码 - 破坏程序
> Calc.exe!Calc::Form1::Button0_Click(System::Object^ sender = 0x01b29c58, System::EventArgs^ e = 0x01b45e40) Line 123 + 0x30 byte C++
Using the ToDouble(String) method is equivalent to passing value to the Double.Parse(String) method. Value is interpreted by using the formatting conventions of the current thread culture.
所以,你需要
捕获可能的异常
try { float rez = (float)(Convert::ToDouble(i1)*4); } catch (FormatException) { // handle format error exception here } catch (OverflowException) { // handle overflow exception here }