2017-07-29 48 views
0

我的Winform上有一個NumericUpDown小部件,聲明爲numEnemyDefence。我想用這對一個變量進行基本的數學:如何解析從NumericUpDown獲取的值?

damagePerHit -= Double.Parse(numEnemyDefence.Value); 

damagePerHit是雙。

然而,我與的錯誤返回:

不能十進制轉換爲字符串。

字符串從哪裏來?爲什麼解析不起作用?

回答

1

Double.Parse預計它的參數是一個字符串。 NumericUpDown.Value是一個小數。 C#編譯器拒絕您的代碼,因爲它不會爲您從小數類型轉換爲字符串類型。這是一件好事,因爲它可以防止很多細微的錯誤。

您可以十進制值簡單地轉換爲雙值

damagePerHit -= (double)numEnemyDefence.Value; 

我還建議改變(如果可能的話)你的變量damagePerHit一個簡單的小數,如果你並不需要的精度雙重價值。
順便說一句,這些類型的操作也是其他頭部劃傷的來源,當你打floating point inaccuracy problem

1

使用Convert類和Convert.toDouble方法

相關問題