The fastest way are probably rational numbers, as they are natively available in many functional languages or Perl6. That is, 0.1 is represented as the integer tupls (1,10) instead of a floating point number.
UPD: I added Fraction.js to benchmark https://munrocket.github.io/double.js/docs/benchmark.html but it slower and overflows for some reason, .round(31) not helps.