如何解析从NumericUpDown获得的值?

时间:2017-07-29 14:17:16

标签: c# parsing numericupdown

我的winform上有一个NumericUpDown小部件,声明为numEnemyDefence。我想用它来对变量进行基本数学运算:

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

damagePerHit是双倍的。

但是,我的错误是:

  

无法将十进制转换为字符串。

字符串来自哪里?为什么解析不起作用?

2 个答案:

答案 0 :(得分:1)

使用Convert class和Convert.toDouble方法

答案 1 :(得分:1)

Double.Parse期望它的参数是一个字符串。 NumericUpDown.Value是一个小数。 C#编译器拒绝您的代码,因为它没有为您自动转换从十进制类型到字符串类型。这是一件好事,因为它可以防止许多微妙的错误。

您只需将十进制值转换为双精度值

即可
damagePerHit -= (double)numEnemyDefence.Value;

如果您不需要双精度值,我还建议您将变量 damagePerHit 更改(如果可能)为简单小数。
顺便说一下,当你点击floating point inaccuracy problem

时,这些操作也会导致其他头部刮伤