是否可以在C#中使用十进制值生成'int'?

Tob*_*sen 0 c# decimal

我是C#的新用户,但他学会了制作小型简单游戏.所以我很开心并以这种方式训练C#.

但是,现在我需要将移动物体速度改变0.2,所以我可以使用间隔来改变速度,而不会使物体发出声音.我正在使用'int'值来设置对象的速度值.我的物体每毫秒移动2个像素(1/1000秒).我试过乘以2,但在这样做了一两次之后,对象会移动得那么快,它们就会出错.

通过网站上的其他问题查看,但找不到任何东西,这似乎可以帮助我.

所以:

是否可以创建一个包含小数值的'int'?

如果是,那么我怎样才能做到这一点,而不用冒着程序中的错误呢?

提前致谢!

Chr*_*tos 8

是否可以创建一个包含小数值的'int'?

不,类型的变量int只能包含整数.在C#和CLR的世界中,a int是可以用32位表示的任何整数.没有更少,仅此而已.但是,十进制值可以用整数表示,请参阅下面的更新和注释,

在你的情况下,我认为a float或a double会做这项工作.(我没有提到decimal,因为我们decimal用于财务计算).

更新

下面的评论的一个重要结果,来自迈克,是因为a float可以用整数表示,实际上这是计算机获得浮点寄存器之前的情况.迈克的另一个贡献是我们可以在" 计算机编程艺术"第2卷第4章中找到更多相关信息.

  • @Tim,我认为这是唯一可以回答这个问题的答案.我将尝试在此添加更多解释,但其实质是这一点. (5认同)