Jump to content

Welcome to Smart Home Forum by FIBARO

Dear Guest,

 

as you can notice parts of Smart Home Forum by FIBARO is not available for you. You have to register in order to view all content and post in our community. Don't worry! Registration is a simple free process that requires minimal information for you to sign up. Become a part of of Smart Home Forum by FIBARO by creating an account.

 

As a member you can:

  •     Start new topics and reply to others
  •     Follow topics and users to get email updates
  •     Get your own profile page and make new friends
  •     Send personal messages
  •     ... and learn a lot about our system!

 

Regards,

Smart Home Forum by FIBARO Team


  • 0

Question

Posted

Does anyone have a simple function or demo on how to deal with numbers that need truncating? I have a virtual device that calculates a bunch of stuff, but I need to trim the number down to 2 decimal places... (its a LOT of decimal places at the moment!)

3 answers to this question

Recommended Posts

  • 0
Posted
1 hour ago, shaunfrost said:

Does anyone have a simple function or demo on how to deal with numbers that need truncating? I have a virtual device that calculates a bunch of stuff, but I need to trim the number down to 2 decimal places... (its a LOT of decimal places at the moment!)

ROUNDIT

Rounds a number to a defined number of decimal places

This function takes one parameter - num (the number you want rounded) and idp (the number of decimal places)

so roundit(2.12348, 3) would result in 2.123 

Please login or register to see this code.

Thank Autofrank for this, its out of one of his tutorials.
  • 0
Posted

If it's for formatting the number to a string for use in a VD label the builtin function string.format is quite useful;

Please login or register to see this code.

string.format have a lots of flags to control text/number formatting.

If it's the number you are after a lazy way would be tonumber(string.format("%.3f",2.12348)). Not as efficient as roundit though...;-)

  • 0
  • Inquirer
  • Posted
    7 hours ago, Jamie mccrostie said:

    ROUNDIT

    Rounds a number to a defined number of decimal places

    This function takes one parameter - num (the number you want rounded) and idp (the number of decimal places)

    so roundit(2.12348, 3) would result in 2.123 

    Please login or register to see this code.

    Thank Autofrank for this, its out of one of his tutorials.

     

    Thanks to all.. worked like a treat

    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.

    Guest
    Answer this question...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

    ×
    ×
    • Create New...