Лучший способ получить дробную часть числа

Дано const auto foo = 13.42 Я хотел бы получить дробную часть чисел, так .42

Я склоняюсь только к использованию fmod лайк: fmod(foo, 1.0)

Но я мог бы просто сделать foo / static_cast<int>(foo) - 1.0 Или, может быть, какой-то другой мистический метод.

Будет ли мотивация для меня не просто использовать fmod?

-1

Решение

Два способа, которые я могу придумать: либо бросок, либо округление std::floor

int main()
{
const auto foo = 13.53;

auto firstWay = foo - static_cast<long long>(foo);  // Truncating via cast and subtracting

auto otherWay = foo - std::floor(foo); // Rounding down and subtracting

return 0;
}

Quick Bench Result показывает fmod Подход как самый медленный вариант, а бросок как самый быстрый: QuickBench

6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]