Highlighted
Major Blue Belt

## 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?

Accepted Solutions
Highlighted
White Belt

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.

Highlighted
Red Belt

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.

**Did this solve your problem? Accept it as a solution!**
Highlighted
Black Belt

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).

Jae Wilson
Check out my Domo Training YouTube Channel

**Say "Thanks" by clicking the heart in the post that helped you.
**Please mark the post that solves your problem by clicking on "Accept as Solution"

All Replies
Highlighted
White Belt

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.

Highlighted
Red Belt

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.

**Did this solve your problem? Accept it as a solution!**
Highlighted
Major Blue Belt

Thanks @GrantSmith and @user096693 I'll try both approaches 👨‍💻

Highlighted
Major Blue Belt

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

Highlighted
Major Blue Belt

@user096693 thanks, your solution was exactly what I needed

Highlighted
Black Belt

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).

Jae Wilson
Check out my Domo Training YouTube Channel

**Say "Thanks" by clicking the heart in the post that helped you.
**Please mark the post that solves your problem by clicking on "Accept as Solution"
Highlighted
Major Blue Belt

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.

Announcements
Domopalooza 2021 Call for Presenters: We want to hear how Domo is revolutionizing the way you do business!