我的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方法