It can't.
What do you get when you multiply "bread is great" by "in a sandwich"?
Nothing - it's a silly thing to try and do.
But the framework doesn't know what the user is going to type - it might be a number, it might not. So your second attempt is better, but also flawed because users make mistakes.
Try this:
double price;
if (!double.TryParse(BTCPrice_Label.Text, out price))
{
... report problem to user ...
return;
}
double btcA;
if (!double.TryParse(BTCPrice_Label.Text, out btcA))
{
... report problem to user ...
return;
}
label1.Text = (price * btcA).Tostring();
That way, your app won't crash when there is a problem!