Bedragen weergeven met 2 decimalen

Goede morgen, ik maak diverse berekeningen met de gegevens van de P1 meter. Ik wil echter altijd 2 cijfers achter de komma laten zien als ik de resultaten doorstuur naar CallMeBot. Nu laat hij de decimalen weg als het nullen zijn.
Dus 2.70 wordt 2.7 en 10,00 wordt 10.

Wie weet de oplossing??

Het laatste cijfer is het aantal decimalen dat je wilt hebben

Of je kan gebruik maken van een Homey Script:

let myNumber = args[0];
let decimals = 2;

return (Math.round((myNumber+Number.EPSILON)*Math.pow(10,decimals)) / Math.pow(10,decimals)).toFixed(decimals);

Als je zelf al het getal hebt afgerond, dan kan je dit script gebruiken:

return Number(args[0]).toFixed(2);

Maar let er wel op dat het afronden van β€œfloating point numbers” een stuk ingewikkelder ligt dan je in eerste instantie zou denken…

1 Like

Misschien heb ik de vraag niet goed gesteld. Het gaat niet om het afronden, die had ik al.
Het gaat om het presenteren : Dus 2 moet worden getoond als 2,00 en 4,7 als 4,70.

Dat is dus precies wat de HomeyScript routine van @Hamster doet, alleen geeft hij een decimale punt in plaats van een komma.

Je kan Flow Utilities App for Homey | Homey gebruiken:

image

1 Like

Ik heb mijn script iets aangepast (maakt nu gebruik van Number.EPSILON) en een alternatief script voor als je zelf een getal al hebt afgerond (want dan kan het script een stuk eenvoudiger worden).

1 Like

Welkom op het forum

Dit topic is verplaatst naar het Nederlandse deel van het forum, graag je aandacht voor het kiezen van de juiste categorie/taal.

Wanneer je problemen hebt met de Moderatie acties neem dan gerust contact met mij of een andere moderator op via een Prive bericht.