簡體   English   中英

如何在C#中將兩個標簽的數量相乘

[英]How to multiply the number of two labels in C#

所以我有 2 個標簽。 其中一個是固定數字,不會改變,但另一個每 5 秒改變一次。 現在我想自動將它們相乘並將它們顯示在另一個標簽中作為結果。

我該怎么辦? 我究竟做錯了什么?

我試過這段代碼,但它說“運算符*不能應用於字符串和字符串”。

label1.Text = BTC_A.Text * BTCPrice_Label.Text;

然后我試過了

double txt1 = Convert.ToDouble(BTC_A.Text);
            double txt2 = Convert.ToDouble(BTCPrice_Label.Text);

            double sum = txt1 * txt2;

            label1.Text = sum.ToString();

但它說“輸入字符串的格式不正確”

一步一步思考。

您有帶有Text屬性的標簽。 該屬性的類型為string C# 是一種強類型語言:字符串不能像那樣相乘。 最后,標簽可以為空,或者用戶可以輸入任何隨機字符串。 "foo" * "bar"的結果是什么?

此外,當您由於某種乘法而得到一個double ,您希望在另一個label.Text向用戶顯示它。 這里有一個相反的問題:C#/.Net 不會將double類型的變量隱式轉換為字符串。

所以你將不得不

  • 檢查用戶輸入的字符串是否實際上是有效的 double
  • 如果是,將這些字符串轉換為double並相乘
  • 將結果轉換為字符串,並將其分配給標簽Text屬性
  • 如果字符串不是有效數字,請將標簽留空,或顯示一些其他消息

實現這一點的邏輯是這樣的:

var validPrice = int.TryParse(BTCPrice_Label.Text, out double price);
var validAmount = int.TryParse(BTCA_Label.Text, out double amount);
if (validPrice && validAmount)
{
    var result = price * amount;
    label1.Text = result.ToString();
}
else
{
    label1.Text = "something is wrong";
}

所以問題是我在數字前加了一個美元符號 ( $ )。

我剛剛刪除了這個標志,這就是代碼現在的樣子:

double AA;
           if (!double.TryParse(BTC_A.Text, out AA))
           {
                MessageBox.Show($"Unable to convert the BTC_A \"{BTC_A.Text}\" to a floating point number");
                return;
           }
           double btcA;
           if (!double.TryParse(BTCPrice_Label.Text, out btcA))
           {
                MessageBox.Show($"Unable to convert the price \"{BTCPrice_Label.Text}\" to a floating point number");
                return;
           }
           label1.Text = (AA * btcA).ToString();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM