2011-11-07 41 views
0

我有一個組合框,有產品類型和與之相關的相關價格。我需要將組合框的價值成員作爲價格,並將其轉換爲將其乘以另一個值並將其作爲貨幣放入發票中。目前我可以將其轉換爲字符串,但似乎我不能只使用.ToString(「C」)重載將其更改爲貨幣。任何幫助將是巨大的:組合框值成員到貨幣

private void btnAddProduct_Click(object sender, EventArgs e) 
    { 
     double invoiceTotal; 
     double productTotal; 
     double currentTotal; 
     string multiplier; 
     string price; 

     //invoiceTotal = 0; 
     price = Convert.ToString(comboBox1.SelectedValue); 

     multiplier = comboBox2.Text; 
     productTotal = Convert.ToDouble(txtProductTotal.Text); 

     if (txtInvoiceTotal.Text != "") 
     { 
      invoiceTotal = Convert.ToDouble(txtInvoiceTotal.Text); 
     } 
     else 
     { 
      invoiceTotal = 0; 
     }    
     currentTotal = productTotal + invoiceTotal; 
     txtInvoiceTotal.Text = Convert.ToString(currentTotal); 
     string prod = comboBox1.Text; 

     if (txtExplanation.Text == "") 
     { 
      txtExplanation.Text = prod + " X " + multiplier + " @ " + price; 
     } 
     else 
      txtExplanation.Text = txtExplanation.Text + "\r\n" + prod + " X " + multiplier + " @ " + price;   

    } 

回答

1

comboBox1.SelectedValue應該已經是一個字符串。所以你可能希望使用String.Format來按照你想要的方式進行格式化。否則,您可以使用Double.Parse(comboBox1.SelectedValue)將它解析爲double,然後在double值上調用ToString(「C」)。

+0

工作感謝!使用:string currencyText = String.Format(「{0:C}」,price); – korrowan

0

什麼你很可能尋找的是一個字符串格式

var price = comboBox1.SelectedValue; 
var currencyText = price.ToString("$#,##0.00"); 
+0

仍然沒有運氣。它不斷給我同樣的錯誤:方法'ToString'沒有重載需要一個參數。當我嘗試使用ToString(「C」); – korrowan

+0

您在組合框中存儲的數據類型是什麼?它是貨幣數據嗎? –

+0

是的,它是貨幣數據。這是我們銷售的產品的'價格'。 – korrowan