[英]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
並相乘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.