Я заметил странное поведение в c ++, которое я не понимаю, я пытаюсь напечатать усеченный двойник в шестнадцатеричном представлении
этот вывод кода 17 , которыйявляется десятичным представлением
double a = 17.123;
cout << hex << floor(a) << '\n';
, в то время как этот вывод кода 11 , а также мой желаемый вывод
double a = 17.123;
long long aASll = floor(a);
cout << hex << aASll << '\n';
, поскольку double может получить действительнобольшие числа я боюсь неправильного вывода при сохранении усеченного числа в длинной длинной переменной, какие-либо предложения или улучшения?