C ++双到十六进制控制台输出需要帮助解决

时间:2016-05-24 13:07:32

标签: c++ cout

我的代码:

#include <iostream>
#include <iomanip> 
using namespace std;

int main() {
    double A = 100.35;
    cout.precision(0);
    cout << std::hexfloat << std::fixed << std::left << A << endl;
    return 0;
}

当前输出: 100

我的预期输出: 64

说明: 我想打印double的小数部分的十六进制值。但是我没有成功。需要帮忙。我们将非常感谢这方面的任何帮助。

1 个答案:

答案 0 :(得分:0)

你所要求的是根本不可能的。 std::hex(您要查找的输出)仅适用于整数参数,std::hexfloat使用不需要的格式。你需要施放或围绕。

#include <iostream>
#include <iomanip> 
#include <cmath>
using namespace std;

int main() {
    double A = 100.35;
    cout.precision(0);
    cout << std::hex << std::showbase << std::lround(A) << endl;
    return 0;
}