2017-10-11 47 views
0

嘗試使用小數計算時出現Sytem.FormatException錯誤。它適用於不是十進制的數字。 我需要添加/更改以使其與十進制數一起工作?如何用十進制數字來計算? (C#)

這是我的代碼:

namespace Nikotin_Rechner 

    { 
     public partial class Form1 : Form 
     { 
      public Form1() 
      { 
       InitializeComponent(); 
      } 

      private void buttonCalculate_Click(object sender, EventArgs e) 
      { 
       int val1 = Int32.Parse(AngabeGesamt.Text); 
       int val2 = Int32.Parse(AngabeStärke.Text); 

       int result = val1/20 * val2; 
       labelBase.Text = result.ToString(); 
      } 
     } 

} 
+0

你試圖做浮點東西上整數?你讀過整數的定義了嗎? – 2017-10-11 08:42:13

+0

'double val1 = double.Parse(AngabeGesamt.Text); ... double result = val1/val2;' –

+0

'Int32.Parse'應改爲'decimal.Parse'或'double.Parse'&all'int由'decimal'或'double'取代。 –

回答

2

如果你想浮點值,你必須改變類型int,比方說,doublefloatdecimal):

private void buttonCalculate_Click(object sender, EventArgs e) 
{ 
    double val1 = double.Parse(AngabeGesamt.Text); 
    double val2 = double.Parse(AngabeStärke.Text); 

    double result = val1/20 * val2; 
    labelBase.Text = result.ToString(); 
} 
+0

非常感謝!它現在工作:) – tegabyte

0

你」我想要使​​用不同的類型,而不是int,我建議你的情況下使用double。事情是這樣的:

private void buttonCalculate_Click(object sender, EventArgs e) 
{ 
    double val1 = double.Parse(AngabeGesamt.Text); 
    double val2 = double.Parse(AngabeStärke.Text); 

    double result = val1/20 * val2; 
    labelBase.Text = result.ToString(); 
} 

請參閱官方C#文檔瀏覽:https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/double

讓我知道你上車!

+0

雙現在工作正常。感謝您爲我提供這個鏈接,我會研究它! – tegabyte

+0

很高興聽到它,如果你需要任何其他的東西只是讓我知道! –

0

這段代碼可以做到這一點

 decimal val1 = decimal.Parse("9"); 
     decimal val2 = decimal.Parse("7"); 

     decimal result = (val1/20)* val2; 
     Console.Write(result); 

結果是3.15

相關問題