我目前正在研究一個學校項目的計算器。 我需要一個指數函數,但不知道如何。我得到這個錯誤:C#計算器exponet函數。怎麼樣?
Argument 1: cannot convert from 'double?' to 'double'
我的一些代碼。
namespace Lommeregner
{
public partial class Lommeregner : Form
{
double? firstpressednumber;
double sum;
double? secondpressednumber = null;
string operationclicked;
onscreenShower _onscreenShower = new onscreenShower();
我的指數:
private void btn_exponent_Click(object sender, EventArgs e)
{
screen_text.Text = _onscreenShower.DisplayOnScreen(Math.Exp(secondpressednumber).ToString(), screen_text.Text.ToString());
}
我等於代碼。
private void btn_equal_Click(object sender, EventArgs e)
{
if(screen_text.ToString().Length>0)
{
switch(operationclicked)
{
case "+":
secondpressednumber = double.Parse(screen_text.Text.ToString());
sum = double.Parse((firstpressednumber + secondpressednumber).ToString());
firstpressednumber = double.Parse(screen_text.Text.ToString());
screen_text.Text = sum.ToString();
break;
case "-":
secondpressednumber = double.Parse(screen_text.Text.ToString());
sum = double.Parse((firstpressednumber - secondpressednumber).ToString());
firstpressednumber = double.Parse(screen_text.Text.ToString());
screen_text.Text = sum.ToString();
break;
case "*":
secondpressednumber = double.Parse(screen_text.Text.ToString());
sum = double.Parse((firstpressednumber * secondpressednumber).ToString());
firstpressednumber = double.Parse(screen_text.Text.ToString());
screen_text.Text = sum.ToString();
break;
case "/":
secondpressednumber = double.Parse(screen_text.Text.ToString());
sum = double.Parse((firstpressednumber/secondpressednumber).ToString());
firstpressednumber = double.Parse(screen_text.Text.ToString());
screen_text.Text = sum.ToString();
break;
}
}
}
希望你們能幫忙。
嘗試'Math.Exp(secondpressednumber.Value)',注意它會拋出一個異常,如果'secondpressednumber '是'null'因此可能先檢查一下。 – juharr
@ChristopherKyleHorton我知道原因,所以我提出了這個建議。 – juharr
@ChristopherKyleHorton我的意思是'secondpressednumber.Value'會拋出一個異常,如果'secondpressednumber'爲null,而不是如果你傳遞'double?'到'Math.Exp'。 – juharr