A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 李朋霏 中级黑马   /  2012-7-17 20:00  /  2002 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int i=10;int=3;
double s=Convert.ToDouble(i / j);
为什么输出后s的值还是3,不是double 类型的?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

8 个回复

倒序浏览
因为你定义的时候i,和j都是int类型的,在这个括号中包括的是一个int类型的结果,这个结果就是3,所以Convert.ToDouble后还是3!
希望对你有帮助!!

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
你定义的全是int 类型变量 最后算出结果当然是int类型的,你想得出double的类型的 你可以定义成double类型的

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
int i=10;int=3;
double s=Convert.ToDouble(i / j);

你定义的两个都是int类型,所以输出结果也是int类型,如果你要变成double类型 可以把 double s=Convert.ToDouble(i / j);改成 double s=Convert.ToDouble(i / j*1.0);

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
double i=10.0;double=3.0;
double s=Convert.ToDouble(i / j);
这样不就行啦{:soso_e103:}

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
double 类型高于 int类型,当double类型 与int类型计算时,计算结果是一个double类型,两个int类型计算时结果是一个int类型;
             int  i=10;
            double j=3;
            double s=Convert.ToDouble(i / j);

或         double i=10;
            int j=3;
            double s=Convert.ToDouble(i / j);  

            double i=10;
            double  j=3;
            double s=Convert.ToDouble(i / j);   s都会是double 类型

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
我最后用一个Double解决问题了
int i=10;int=3;
double s=Double(i / j);

回复 使用道具 举报
因为你定义的前两个数都是int类型,int类型除以int类型,得到的还是int类型,如果你在前面乘以一个1.0,就可以真正转换成double类型了。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
钱灿 中级黑马 2012-7-17 23:56:43
9#
double s=Convert.ToDouble(i / j);
i/j其结果为int型3,通过强制转换将int型3转为double型3,所以结果并非期望值。可以将i或j定为double型解决问题。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马