I've pulled the Unacast web service into an AGOL web map for our coronavirus site. For part of the display in my pop-up, I have this custom Arcade expression to convert the values in the difference field to a positive number and then display the percentages with a max of two decimals:
var travelpercent = Abs($feature["daily_distance_diff"])
return (round(travelpercent, 2)*100) + '%'
However, the results in my pop-ups are inconsistent. In one spot, it looks great:
But in another, it looks like this:
I've been ignoring it so far, but Douglas County is my county and that percentage looks ridiculous. Are there any tweaks I can make to the Arcade code to fix this?
Edited to add: I tried changing the rounding to 1 decimal place and it rounded our county up to 60%. Then I tried 0 and it rounded to 100%!! Oh my.
I just made a very similar arcade expression and noticed the same behavior that you're describing. I decided to try rearranging the expression to multiply it by 100 before rounding, so that it looks more like the following.
round(travelpercent*100, 2) + '%'
It seems to be giving me more consistent results now, though I don't have a lot of features to test it on.
EDIT
I read the documentation for the Round function, and it has a note that says to use the Text function to format numbers for display in labels and pop-ups. After looking at the documentation, I altered my expression to include the text function instead, and it even multiplies by 100 for me.
Text(travelpercent, '#.##%')
If you don't want decimals for your percentage, you will probably want to use the following format:
Text(travelpercent, '#%')