关于2-18的一点疑问

来源:2-18 选择题

kyb0

2018-09-19 22:40:41

http://img.mukewang.com/climg/5ba25ebc0001236717620677.jpg

D选项应该如何理解?int a=6.6,这其中有隐形转化,将double类型强制转化为整形,此时a的值是6,但是在输出时候是(double)6,这里也有一个转化过程,就是将整形的6转换成双精度的6.0,所以输出的时候应该是6.0吧,而不应该是6,不知道我这样的理解对不对?

写回答

5回答

FANGYUAN_

2018-11-01

先尝试一下

double a = 6;
cout << a << endl;
int b = 6.6;
cout << (double)b << endl;
double c = (double) b;
cout << c << endl;

尝试之后 你就可能理解了


0

算法请爱我emmm

2018-09-27

你的理解没有错,但是他题目的意思是输出的结果6.0和6都是一样的,都是数值为6的数字

0

慕盖茨6136298

2018-09-21

但我做过实验,结果是6哦

0

Tender10

2018-09-20

1、是可以进行隐式转换,但并不是直接转换啊,直接转换的意思就是直接强制转换的意思。

2、

http://img.mukewang.com/climg/5ba3465e00010cb708080582.jpg

运行结果确实是0.5,不知道你是怎么写的呢,运行的结果是0。

0

Tender10

2018-09-20

(double)a是没有效果的,int类型不能直接转换成double类型的。一般整型计算想等到double类型的结果,可以参考如下代码:

int a=1;
int b=2;
double d=(double)a/b;
cout<<d<<endl;


0
hANGYUAN_
回复
hyb0
h 他上面的代码输出结果确实是0.5. 我也尝试过了。
h018-11-01
共4条回复

0 学习 · 593 问题

查看课程