String formatting for uint64_t that represents a fixed-point decimal
std::string uint64_to_string(uint64_t n) {


Make interfaces easy to use correctly and hard to use incorrectly.  

The function name is confusing as it would lead me to believe that if I called uint64_to_string(1ull), I would expect a returned value of "1".  

From your problem statement:


  My goal is to take a uint64_t that represents a fixed-point decimal


Instead of using a built-in integer type, leverage the type system by using a fixed-point decimal class.



Ensure you are using &lt;cstdint&gt; and prefix the namespace on the integral type std::uint64_t.



Avoid magic numbers. If 8 is supposed to represent a fixed radix point, you should document that by assigning it to a descriptive variable name.  If you use a fixed-point decimal class, you could just refer to its radix point instead.




  How can I make the following code cleaner and/or faster? Obviously all the character insertions/deletions are very slow, but what's the best way to get rid of those?


If you've measured and multiple allocations are slowing you down, calculate the string length of your result first, then fill it with the characters.  I highly recommend you watch Andrei Alexandrescu's Fastware talk he's been giving for the past few years.  He covers this exact topic of converting integers to strings using specific optimization techniques.