C ++将文本框内容转换为Float

时间:2015-02-17 18:18:16

标签: visual-c++ visual-studio-2008 c++-cli

仔细检查此帖子中的代码

Converting textbox string to float?

试图在评论中留下我的问题,但不允许这样做... 总结就像有两个文本框,从第一个获取数据,做某事,然后将结果返回到第二个。

String^ i1 = Textbox1->Text;
float rez = (float)(Convert::ToDouble(i1)*4);
Textbox2->Text = rez.ToString();

除非Textbox1本身有一个浮点数,否则它的效果非常好(更新。它适用于' 65',但不适用于' 65.5&# 39)。 试图执行该代码 - 粉碎程序

>   Calc.exe!Calc::Form1::Button0_Click(System::Object^ sender = 0x01b29c58, System::EventArgs^ e = 0x01b45e40) Line 123 + 0x30 byte    C++

1 个答案:

答案 0 :(得分:1)

Convert::ToDouble

  

使用ToDouble(String)方法相当于将值传递给Double.Parse(String)方法。通过使用当前线程文化的格式约定来解释值。

所以,你需要

  1. 抓住可能的例外情况

    try {
        float rez = (float)(Convert::ToDouble(i1)*4);
    }
    catch (FormatException) {
        // handle format error exception here
    }
    catch (OverflowException) {
        // handle overflow exception here
    }
    
  2. 使用IFormatProvider