Unterschiedliche Werte könnten daran liegen, dass unterschiedliche Browser HTML-Code unterschiedlich darstellen. Dann wären sie mit ihrer Berechnung jeweils richtig.
Um browser-bedingte Fehler bei der Berechnungen auszuschließen, würde ich ein js-Framwork verwenden, z.B. jquery.