# Can't add values

**URL:** <https://discourse.nodered.org/t/cant-add-values/14725>\
**Category:** General\
**Created:** [23 August 2019 20:38 UTC](https://discourse.nodered.org/t/cant-add-values/14725 "2019-08-23T20:38:16Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ronaldz](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ronaldz/32/11295_2.png) [@Ronaldz](https://discourse.nodered.org/u/Ronaldz)\
**Post date:** [23 August 2019 20:38 UTC](https://discourse.nodered.org/t/cant-add-values/14725/1 "2019-08-23T20:38:16Z")

</div>

when I try to add and subtract values, it seems that adding 2 numbers will not work while subtracting is oke.

in the function node I do the following:

var waarde1 = 0  
var waarde2 = 0  
var jitter = 5

waarde1 = cvwaarde1 + jitter; ( 851 + 5 will give 8515) is NOK  
waarde2 = cvwaarde1 - jitter; (851 - 5 will give 846) is OK

or

waarde1 = cvwaarde1 +=5; ( 851 + 5 will give 8515) is NOK  
waarde2 = cvwaarde1 -=5; (851 - 5 will give 846) is OK

What do I wrong?

* * *

**My last function node script after many tries:**

var inp = msg.payload;  
var kronwaarde = global.get('kronwaarde');  
var aanuit = global.get('krongelijk');  
var waarde1 = 0  
var waarde2 = 0  
var inpa = 0  
var jitter = 5

waarde1 = kronwaarde + jitter;  
waarde2 = kronwaarde - jitter;

if (inp \>= waarde1){  
cv = "aan";  
aanuit = "aan";  
}

else if (inp \<= waarde2) {  
cv = "uit";  
aanuit = "uit";  
}  
else cv = aanuit;

global.set('kronwaarde', inp);  
global.set('krongelijk', aanuit)

msg.payload = "KRON|"+ new Date().toDateString()+"|"+ inp + "|" + cv;  
return msg;

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/2X/0/05a0f6c00e04918a7b57a91b55d4bf0190825aa0.png)

---

<div class="post-metadata">

**Author:** ![Ronaldz](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ronaldz/32/11295_2.png) [@Ronaldz](https://discourse.nodered.org/u/Ronaldz)\
**Post date:** [23 August 2019 20:52 UTC](https://discourse.nodered.org/t/cant-add-values/14725/2 "2019-08-23T20:52:28Z")

</div>

Aditional info:  
Global variables list:

| cvgelijk1 | "aan" |
| --- | --- |
| cvgelijk2 | "uit" |
| cvwaarde | "858" |
| cvwaarde1 | "857" |
| cvwaarde2 | "859" |
| gelijk | "aan" |
| kmargelijk | "aan" |
| kmargelijk1 | "aan" |
| kmargelijk2 | "uit" |
| kmarwaarde | "191" |
| kmarwaarde1 | "185" |
| kmarwaarde2 | 100 |
| krongelijk | "aan" |
| kronwaarde | "185" |
| tabgelijk | "aan" |
| tabwaarde | "851" |

---

<div class="post-metadata">

**Author:** ![afelix](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/afelix/32/9743_2.png) [@afelix](https://discourse.nodered.org/u/afelix)\
**Post date:** [23 August 2019 21:24 UTC](https://discourse.nodered.org/t/cant-add-values/14725/3 "2019-08-23T21:24:14Z")

</div>

Dag Ronald,  
even in het Nederlands voor de snelheid. Je numerieke waardes staan als tekst opgeslagen. Zie de quotjes aan beide kanten. Om er mee te rekenen moet je ze naar nummers overzetten. Ik zoek er even een forum post bij waar ik dit een paar dagen geleden heb uitgelegd 🙂  
Zie het tweede deel van de volgende post:

> [@Splitting data from msg.payload](https://discourse.nodered.org/t/splitting-data-from-msg-payload/14473/4):
>
> Okay, then I'll spoil you with the solution, with an explanation on the how (I'm sick and bored and that's the excuse I'll use for it today :P): What you're going to need is a function node, after your serial node. From what I remember from seeing this node, there is a configuration option that lets you trim off the whitespace, by selecting the return type or something like that. If it's there, select carriage return line feed or enter \r\n if it is an input. If it's not present there, you will…

* * *
Summary in English: your values are stored as string values rather than numbers. To use them for calculations you have to turn them into numbers first.
1. for a whole number, an integer: `msg.payload = parseInt(msg.payload, 10); // 10 as in base 10, a decimal number`
2. for a decimal number, or rather a floating point: `msg.payload = parseFloat(msg.payload);`
3. if you don't know if it's a decimal or whole number, or if you want it to fail if there's still text in it: `msg.payload = Number(msg.payload);` If it has any text in it that makes it's unable to get a number, you will get `NaN` instead: Not a Number.

---

<div class="post-metadata">

**Author:** ![Ronaldz](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ronaldz/32/11295_2.png) [@Ronaldz](https://discourse.nodered.org/u/Ronaldz)\
**Post date:** [23 August 2019 22:06 UTC](https://discourse.nodered.org/t/cant-add-values/14725/4 "2019-08-23T22:06:01Z")

</div>

[quote="afelix, post:3, topic:14725"]  
parseInt(msg.payload, 10)  
[/quote  
Thanks for the fast replay, it solves a the the issue.

Bedankt voor de snelle reactie, ik heb zo bijna het hele internet afgezocht maar kon de oplossing niet vinden. maar je oplossing werkt 😊
