C++ 静态强制转换(int)到(float)无小数

C++ 静态强制转换(int)到(float)无小数,c++,C++,我试图使用static\u cast将2个整数转换成浮点。问题是当我做数学时,我得到的是4,而不是4.00 下面我给出了一个代码示例 #include <iostream> #include <string> #include <vector> using namespace std; int main() { int num = 4, den = 1; cout << static_cast<float&

我试图使用
static\u cast
将2个整数转换成浮点。问题是当我做数学时,我得到的是4,而不是4.00

下面我给出了一个代码示例

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main()
{
    int num = 4,
        den = 1;

    cout << static_cast<float>(num) / static_cast<float>(den);
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
int num=4,
den=1;

结合内森和艾尔克的作品, 在iomanip库中提供的参数化操纵器中使用浮点格式标志。
以下是您的代码在进行必要更改后的外观:`

#include <iostream>
#include <iomanip>

int main()
{
    int num = 4,
    den = 1;
    std::cout << std::fixed << std::setprecision(2) << 
            static_cast<float>(num) / static_cast<float>(den);
    return 0;
}
#包括
#包括
int main()
{
int num=4,
den=1;

std::4.00和4之间有什么区别?也就是说,为了避免那些无用的强制转换,创建浮点文本:
float num=4.0f;
。一般来说,当您想要添加强制转换以使代码编译或使其在没有警告的情况下编译时,您使用了错误的类型来开始编译n与.
4.00
4
4
,只是同一个值的不同表示形式。当你将两个数字相除时,你会得到一个值。