代码改变世界

C#里的数值转换

2010-02-24 18:57  听雨到天明  阅读(195)  评论(0)    收藏  举报

下午一同事告诉我,我的图表控件显示不正常,调了一会,才发现一个从来都没注意过的问题。

从浮点数转换成int类型,有好几种转换方式。

    //第一种方式

    float fTest1 = 0.8F;

    int nTest1 = (int)fTest1;

这种方式的转换和C、C++是一模一样的,不管是0.几都会被转换成了0;

 

    //使用Convert进行转换

            float fTest = 0.8F;
            int nTest = Convert.ToInt32(fTest);

这种方式有些特殊,我的构件出错的地方也在这里。通过Convert进行转换,小数部分大于0.5的,都会进位。小于等于0.5的,就去掉了。

另外还有几种方式转换,试了下,发现都和(int)float的转换方式一样,看来convert做了一些额外的工作啊,定势思维使得以为它也是那种普通的转换呢