静态Cast(int)到(float)没有小数

时间:2015-10-24 11:55:22

标签: c++

我试图使用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?

1 个答案:

答案 0 :(得分:2)

结合Nathan和Eelke所写的内容, 使用浮点格式标志fixed以及iomanip库中提供的setprecision参数操纵器。
在所需的更改之后,以下是您的代码看起来的样子:`

#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;
}