如何解析从 NumericUpDown 获得的值?
How to parse a value obtained from NumericUpDown?
我的 winform 上有一个 NumericUpDown 小部件声明为 numEnemyDefence
。我想用它来对变量执行基本数学运算:
damagePerHit -= Double.Parse(numEnemyDefence.Value);
其中 damagePerHit
是双精度数。
但是,返回时出现以下错误:
Cannot convert decimal to string.
字符串从哪里来?为什么解析不起作用?
使用转换 class 和 Convert.toDouble 方法
Double.Parse 期望它的参数是一个字符串。 NumericUpDown.Value 是小数。 C# 编译器拒绝您的代码,因为它不会为您自动将十进制类型转换为字符串类型。这是一件好事,因为它可以防止很多细微的错误。
您可以简单地将十进制值转换为双精度值
damagePerHit -= (double)numEnemyDefence.Value;
如果您不需要双精度值,我还建议将变量 damagePerHit 更改(如果可能)为简单的小数。
顺便说一句,当你点击 floating point inaccuracy problem
时,这些操作也是其他挠头的来源
我的 winform 上有一个 NumericUpDown 小部件声明为 numEnemyDefence
。我想用它来对变量执行基本数学运算:
damagePerHit -= Double.Parse(numEnemyDefence.Value);
其中 damagePerHit
是双精度数。
但是,返回时出现以下错误:
Cannot convert decimal to string.
字符串从哪里来?为什么解析不起作用?
使用转换 class 和 Convert.toDouble 方法
Double.Parse 期望它的参数是一个字符串。 NumericUpDown.Value 是小数。 C# 编译器拒绝您的代码,因为它不会为您自动将十进制类型转换为字符串类型。这是一件好事,因为它可以防止很多细微的错误。
您可以简单地将十进制值转换为双精度值
damagePerHit -= (double)numEnemyDefence.Value;
如果您不需要双精度值,我还建议将变量 damagePerHit 更改(如果可能)为简单的小数。
顺便说一句,当你点击 floating point inaccuracy problem