Check out the description of toFixed on MDN:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed
It doesn't cover your specific example, but it does cover the differences between, e.g., Number(2.35).toFixed(1) and Number(2.55).toFixed(1).
The TL;DR here is that floating point numbers are represented in a non-intuitive way internally to your computer (IEEE 754), and the toFixed function doesn't take the time to perform the rounding in the way you expect. You can generally achieve the rounding you want my multiplying your number by a factor (in your case, 100), calling Math.round() on the result, dividing it again by the same factor used previously, and then formatting that with toFixed().