Fixed net value calculation to avoid rounding errors

This commit is contained in:
Stefan Zermatten
2015-06-10 11:00:42 +02:00
parent 35efe39ea7
commit efc79cb6e7

View File

@@ -1,25 +1,27 @@
Template.registerHelper("valueString", function(value) { Template.registerHelper("valueString", function(value) {
var intValue = Math.round(value * 100);
var cp = intValue % 10;
intValue -= cp;
cp = Math.round(cp);
sp = intValue % 100;
intValue -= sp;
sp = Math.round(sp / 10)
gp = Math.floor(value);
var resultArray = []; var resultArray = [];
//sp
var gp = Math.floor(value);
if (gp > 0) { if (gp > 0) {
resultArray.push(gp + "gp"); resultArray.push(gp + "gp");
} }
//sp
var sp = Math.floor(10 * (value % 1));
if (sp > 0) { if (sp > 0) {
resultArray.push(sp + "sp"); resultArray.push(sp + "sp");
} }
//cp
var cp = 10 * ((value * 10) % 1);
cp = Math.round(cp * 1000) / 1000;
if (cp > 0) { if (cp > 0) {
resultArray.push(cp + "cp"); resultArray.push(cp + "cp");
} }
//build string with correct spacing //build string with correct spacing
var result = ""; var result = "";
for (var i = 0; i < resultArray.length; i++) { for (var i = 0, l = resultArray.length; i < l; i++) {
//add a space between values //add a space between values
if (i !== 0) { if (i !== 0) {
result += " "; result += " ";