为什么数据转换在c ++中不起作用?

时间:2018-03-14 00:21:08

标签: c++

cout <<  (float(5 / 2)) << endl;

它只是在屏幕上打印2而不是2.5,为什么?
怎么做得好?

1 个答案:

答案 0 :(得分:0)

问题不在于你没有正确投射,而是你没有在正确的时间做这件事。由于优先级,2 / 5将首先进行整数除法,并保留2。然后将其转换为double,其保持为2。如果你想将它作为2.5,你必须在进行除法之前进行投射。这看起来像是:

std::cout << (float)5 / (float)2 << std::endl;