我的代码:
#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的小数部分的十六进制值。但是我没有成功。需要帮忙。我们将非常感谢这方面的任何帮助。
答案 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;
}