将numericUpAndDown值转换为整数变量

时间:2016-09-18 16:57:01

标签: c#

我在尝试将numericUpAndDown转换为int时遇到问题。这是我到目前为止的代码。 private int counter = numericUpAndDown1.Value; 感谢所有帮助,谢谢!

2 个答案:

答案 0 :(得分:1)

numericUpAndDown1.Value属于decimal类型,因此您无法直接将其存储到INT并需要显式投射

private int counter = (int)numericUpAndDown1.Value;

答案 1 :(得分:0)

在不知道numericUpAndDown1.Value属性的类型的情况下,您可以使用int.Parse快速完成此操作。肮脏的解决方案:

private int counter = int.Parse(numericUpAndDown1.Value.ToString());

正如Rahul的回答所建议的那样,在numericUpAndDown1.Value是另一种数字类型的情况下,你也可以尝试直接强制转换。但是,当源值超出可接受的整数值范围(小于/大于2,147,483,647)时,这可能会导致运行时异常。

private int counter = (int)numericUpAndDown1.Value;

由于这两个都可以抛出异常,因此可以使用int.TryParse方法来保证安全:

private int counter = 0;
int.TryParse(numericUpAndDown1.Value.ToString(), out counter);

如果你可以发布更多代码来提供一些上下文,那么可能会有更好的建议。

修改

以下应用程序演示了从十进制到int的直接转换将在这种情况下抛出异常:

using System;

namespace DecimalToIntTest {
    class Program {
        static void Main(string[] args) {

            decimal x = 3000000000;
            int y = (int)x;

            Console.WriteLine(y);
            Console.Read();

        }
    }
}