# Create decimal value

HI

I am receiving av value from a temp sensor in the range from 0 to 400.
I need to create a desimal value like this, 0 to 0.0 and 400 to 40.0

How can i do this?

Hi and welcome to the forum.

There are a few ways to do that.

But for the sake of helping you with one way, it could be done with a `function` node.

The message you receive it handled by the `function` node and then returns a value within your range.

That is easy as basically you are dividing the number by `10`.

So it would look like this:

``````var x = msg.payload/10;
x = parseInt(x);
return msg;
``````

So to apply this, you put a `function` node connected to the output of the temperature and put that code in it.

then put a `debug` node and make sure you are seeing what you want.

Use a change node like this:

``````[
{
"id": "0e398e3493950569",
"type": "change",
"z": "7fd8fff652f013f7",
"name": "",
"rules": [
{
"t": "set",
"pt": "msg",
"tot": "jsonata"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 850,
"y": 2180,
"wires": [
[
"aea1d39be7f0be03"
]
]
}
]
``````

Works perfect

Thanks for quick response to a NOOB question.

What do you want 21 converted to?

If you want that to go to 2.1 then that function will not do that, it will convert it to 2.
Either way you don't need a function node, you can use the built in Range node.

If you only want integers out then tick the Round to nearest integer checkbox.

Nice
I like this one.

Thanks

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.