为什么在C++算术函数中添加".0"会给出小数点的答案?

Sye*_*ain -1 c++ math function

#include <iostream>
int main()
{   
    //Returns Seven divided by three is 2
    std::cout << "Seven divided by three is " <<  7/3  << std::endl;

    //Return Seven divided by three is 2.33333
    std::cout << "Seven divided by three is " <<  7.0/3  << std::endl; 
    std::cout << "Seven divided by three is " <<  7.0/3.0  << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

.0即使我没有在代码中放置float或double变量,如何添加到数字的末尾也会返回小数答案?

Fan*_*Fox 8

c ++是一种强类型语言.这意味着每个对象,甚至是右值常量,都有一个类型.7并且7.0类型不同.你可以在一个简单的例子中看到:

std::cout << typeid(7).name() << "\n";
std::cout << typeid(7.0).name() << "\n";
Run Code Online (Sandbox Code Playgroud)

打印:

i
d
Run Code Online (Sandbox Code Playgroud)

integerdouble.

你的分工操作在单一案件中造成双重印刷的原因7.0/3是因为整体晋升的规则.在这种情况下,3将提升为double,结果值为double类型.