2017-03-19 71 views
-1

我創建了我的第一個win32表單。我有一個錯誤,就是當消息框中顯示一個小數作爲輸出時,它會打印出小數點後10位。在控制檯程序中,我可以使用precision(2)命令將小數位設置爲2個位置,但我無法在win32中找到它。下面是代碼:在win32消息框中設置精度爲2位的小數

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { 

    if (this->comboBox1->SelectedIndex == 0 && this->radioButton1->Checked == true) { 
     double a = Convert::ToDouble(this->textBox1->Text->Trim()); 
     double b = Convert::ToDouble(this->textBox2->Text->Trim()); 

     double sum = (b - a) * 100; 


     MessageBox::Show("$" + sum); 
    } 

    else if (this->comboBox1->SelectedIndex == 0 && this->radioButton2->Checked == true) { 
     double a = Convert::ToDouble(this->textBox1->Text->Trim()); 
     double b = Convert::ToDouble(this->textBox2->Text->Trim()); 

     double sum = (a-b) * 100; 


     MessageBox::Show("$" + sum); 
    } 

    if (this->comboBox1->SelectedIndex == 1 && this->radioButton1->Checked == true) { 
     double a = Convert::ToDouble(this->textBox1->Text->Trim()); 
     double b = Convert::ToDouble(this->textBox2->Text->Trim()); 

     double sum = (b - a) * 50; 


     MessageBox::Show("$" + sum); 
    } 

    else if (this->comboBox1->SelectedIndex == 1 && this->radioButton2->Checked == true) { 
     double a = Convert::ToDouble(this->textBox1->Text->Trim()); 
     double b = Convert::ToDouble(this->textBox2->Text->Trim()); 

     double sum = (a - b) * 50; 

     MessageBox::Show("$" + sum); 
    } 

    if (this->comboBox1->SelectedIndex == 2 && this->radioButton1->Checked == true) { 
     double a = Convert::ToDouble(this->textBox1->Text->Trim()); 
     double b = Convert::ToDouble(this->textBox2->Text->Trim()); 

     double sum = (b - a) * 50; 


     MessageBox::Show("$" + sum); 
    } 

    else if (this->comboBox1->SelectedIndex == 2 && this->radioButton2->Checked == true) { 
     double a = Convert::ToDouble(this->textBox1->Text->Trim()); 
     double b = Convert::ToDouble(this->textBox2->Text->Trim()); 

     double sum = (a - b) * 50; 

     MessageBox::Show("$" + sum); 
    } 


} 
+2

這與消息框沒有任何關係。難道你不能將值轉換爲文本的方面,然後顯示該文本。 –

+0

你真的不應該使用C++/CLI進行GUI開發;請看看C#代替。 –

+0

我的朋友告訴我同樣的事情。我在一個C++類,我很無聊,所以我決定嘗試一些WINAPI。但是我將學習C#來處理我認真的GUI應用程序。謝謝 – AMD

回答

1

如果你想爲你的字符串轉換爲特定格式,你需要告訴它要使用的格式。標準數字格式在MSDN上列出。

爲了將double轉換爲帶有兩位小數的字符串,您可以使用定點格式。

sum.ToString("F2") 

但是,由於您在那裏有美元符號,因此您轉換的值似乎是美元。在這種情況下,我們可以做得更好,並使用適當的貨幣格式。這將爲您當前的文化使用貨幣符號,或者您可以指定要使用的文化。

sum.ToString("C") 
+0

工作。輕鬆修復,謝謝很多人! – AMD