Ich habe das Problem gelöst, indem ich die Kommazahlen erstmal mit 100 multipliziert habe. Dann habe ich sie addiert und mit Math.round() aufgerundet. Dann das Ergebnis wieder durch 100 geteilt.
Brauchst Du denn wirklich irgendwo die Kommazahlen, außer für eine Anzeigefunktion?
Ich vermute, Du willst mit Geldbeträgen etc rechnen. Die einzige zuverlässige Methode, die ich dafür kenne (unabhängig von der verwendeten Sprache), ist integer auf Pfennig-Basis, nie runden und bloß bei der Anzeige von Werten entsprechenden Strings bauen.
Also: 31 + 9 fehlerfrei rechnen und später daraus "0.40" konstruieren.