如何解析从 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

时,这些操作也是其他挠头的来源