TL;DR
Module effect's rounding should happen before applying quality.What?
The rounding precision should be done for all prototypes before applying quality, and always apply full quality bonus for module effect. The prototypes API & display values may be kept with the old level precision (i.e., rounding when displayed).Why?
Currently, rounding happens both before and after applying quality. Since each level of quality adds +30% bonus, the later digits are usually lost even if even number of modules would round it to a valid integer percent.Example: Tier 3 Quality module has +2.5% quality for common quality. With 4 of these, you get +10% Quality. Legendary quality increases this by x2.5, to a nice rounded number of +25% quality per machine. However, due to strict rounding before multiplying by the number of modules, we end up with upggly +24.8%.