我的Winform上有一個NumericUpDown小部件,聲明爲numEnemyDefence
。我想用這對一個變量進行基本的數學:如何解析從NumericUpDown獲取的值?
damagePerHit -= Double.Parse(numEnemyDefence.Value);
凡damagePerHit
是雙。
然而,我與的錯誤返回:
不能十進制轉換爲字符串。
字符串從哪裏來?爲什麼解析不起作用?
我的Winform上有一個NumericUpDown小部件,聲明爲numEnemyDefence
。我想用這對一個變量進行基本的數學:如何解析從NumericUpDown獲取的值?
damagePerHit -= Double.Parse(numEnemyDefence.Value);
凡damagePerHit
是雙。
然而,我與的錯誤返回:
不能十進制轉換爲字符串。
字符串從哪裏來?爲什麼解析不起作用?
Double.Parse預計它的參數是一個字符串。 NumericUpDown.Value是一個小數。 C#編譯器拒絕您的代碼,因爲它不會爲您從小數類型轉換爲字符串類型。這是一件好事,因爲它可以防止很多細微的錯誤。
您可以十進制值簡單地轉換爲雙值
damagePerHit -= (double)numEnemyDefence.Value;
我還建議改變(如果可能的話)你的變量damagePerHit一個簡單的小數,如果你並不需要的精度雙重價值。
順便說一句,這些類型的操作也是其他頭部劃傷的來源,當你打floating point inaccuracy problem
使用Convert類和Convert.toDouble方法