静态将(int)强制转换为(float)无小数

Static Cast (int) to (float) no decimals

本文关键字:float 小数 转换 int 静态      更新时间:2023-10-16

我试图使用static_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);
}

如果我做错了,那么请指出我错在哪里。也请提及如果有办法得到4.00而不是仅仅4?

结合Nathan和Eelke所写的内容,使用与setprecision参数操纵器一起固定的浮点格式标志,可在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;
}