c ++打印数字在下位函数后的十六进制数

问题描述 投票:-1回答:2

我注意到我不理解的c ++中一些奇怪的行为,我正在尝试以十六进制表示形式打印截断的double]

此代码输出为17

,它是十进制表示形式
double a = 17.123;
cout << hex << floor(a) << '\n';

此代码输出为11

以及我的所需的输出
double a = 17.123;
long long aASll = floor(a);
cout << hex << aASll << '\n';

因为双精度数会得到很大的数字,我担心将截断的数字存储在long long变量中时会输出错误,有什么建议或改进吗?

我注意到我不理解的c ++中一些奇怪的行为,我正在尝试以十六进制表示形式打印截断的double值,该代码输出为17,这是十进制表示形式...

c++ hex cout floor
2个回答

0
投票
只需编写您自己的floor版本,并使其返回整数值。例如:
© www.soinside.com 2019 - 2024. All rights reserved.