std::modf ?