From efc79cb6e76ed7b933cd71d9e852a2b0ec4e8686 Mon Sep 17 00:00:00 2001 From: Stefan Zermatten Date: Wed, 10 Jun 2015 11:00:42 +0200 Subject: [PATCH] Fixed net value calculation to avoid rounding errors --- rpg-docs/client/globalHelpers/valueString.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/rpg-docs/client/globalHelpers/valueString.js b/rpg-docs/client/globalHelpers/valueString.js index c0060d2f..9321a37e 100644 --- a/rpg-docs/client/globalHelpers/valueString.js +++ b/rpg-docs/client/globalHelpers/valueString.js @@ -1,25 +1,27 @@ 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 = []; - //sp - var gp = Math.floor(value); if (gp > 0) { resultArray.push(gp + "gp"); } - //sp - var sp = Math.floor(10 * (value % 1)); if (sp > 0) { resultArray.push(sp + "sp"); } - //cp - var cp = 10 * ((value * 10) % 1); - cp = Math.round(cp * 1000) / 1000; if (cp > 0) { resultArray.push(cp + "cp"); } //build string with correct spacing 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 if (i !== 0) { result += " ";