Round function

Hello, I have a beast mode that calculates a % and I need it to round to 2 decimals.

I'm using the round function as described in the documentation:


CONCAT(ROUND(1-(COUNT(DISTINCT `nc_list`) / COUNT(DISTINCT `lot_number`)),2)*100, '%')


However, the result is being rounded to the whole number




I need it to, using the example above, display  97.91 instead of 98



What am I missing in my beast mode?

Best Answers

  • user096693
    user096693 ⚪️
    Accepted Answer

    You may not even need to round using a beast mode calculation. It seems like you are using a textbox chart, however for have you tried using the single value chart? It is a similar chart, and if you look in Chart Properties>General>Decimal Places, you will be able to select how many decimal places you would like to show.

  • GrantSmith
    GrantSmith Indiana 🔴
    Accepted Answer

    Hi @MartinB 

    The display options for the field can handle all of this for you.


    You can change your beast mode to be:


    1-(COUNT(DISTINCT `nc_list`) / COUNT(DISTINCT `lot_number`))



    Then click on the Beast mode atop your chart to open the menu and select Data Format > Display as and select Percentage with 2 decimal places. You can then also tell it to multiply by 100. 

  • jaeW_at_Onyx
    jaeW_at_Onyx Budapest / Portland, OR 🟤
    Accepted Answer

    I know i'm late to the party, but @MartinB  it's just basic math.


    CONCAT(ROUND(1-(COUNT(DISTINCT `nc_list`) / COUNT(DISTINCT `lot_number`)),2)*100, '%')


    If you have 1/3 ( = .33333333) and you wrap that in round( 2) you'd get .33 so when you multiply by 100 you'd get 33.


    if you wanted 33.33 then you do round(4).


  • Thanks @GrantSmith and @user096693 I'll try both approaches ?‍?

  • @GrantSmith I tried your approach, however the details you explain apply only to the Optional Value



  • @user096693 thanks, your solution was exactly what I needed



  • Silly me, this formula made the difference. Thanks @jaeW_at_Onyx 


    CONCAT(ROUND(1-(COUNT(DISTINCT `nc_list`) / COUNT(DISTINCT `lot_number`)),4), '%')


    Still, had some trouble when adding strings either at the beginning or the end of the formula pasted above...until this I hit jackpot:


    CONCAT('Quality ', CONCAT(ROUND(100*1-(COUNT(DISTINCT `nc_list`) / COUNT(DISTINCT `lot_number`)),2), '% FPY'))




    Thanks to all, this is the solution I was looking for.

This discussion has been closed.