diff --git a/app/templates/mini_tools/simulator.html b/app/templates/mini_tools/simulator.html index 4912bb32..56784138 100644 --- a/app/templates/mini_tools/simulator.html +++ b/app/templates/mini_tools/simulator.html @@ -68,8 +68,11 @@
{% translate 'Amount' %} - +
{% translate 'Frequency' %} @@ -272,13 +275,19 @@ return year * 12 + month - 1; }; const currentMonth = keyToIndex(baseline.current_month); + // Amounts are masked with the user's separators, so normalize them before parsing + const {decimalSeparator, thousandSeparator} = document.getElementById('simulator').dataset; + const parseAmount = (value) => { + if (thousandSeparator) value = value.split(thousandSeparator).join(''); + return parseFloat(value.split(decimalSeparator).join('.')); + }; const parsed = entries.map(entry => { const picker = entry.startInput.monthPicker; const date = picker && picker.selectedDates[0]; return { type: entry.type, frequency: entry.frequency, - amount: parseFloat(entry.amount) || 0, + amount: parseAmount(entry.amount) || 0, start: date ? date.getFullYear() * 12 + date.getMonth() : currentMonth, interval: Math.max(parseInt(entry.interval) || 1, 1), unit: entry.unit,