To get the one decimal, all you needed to do was change the rounding from ,2 to ,1

There are a few other items that I noticed that might cause problems and/or could be improved.
Example: usage of # for the channel name in an alias is not guaranteed. Some people have reported that it works, while others have said that it doesn't. To be on the safe side, you should pass the channel name to the alias as a parameter.

Here's the full code with all of the suggestions/alterations that I was able to think of included.

Code:
 alias caca {
  $iif($round($calc($nick($1,0,o) * 100 / $nick($1,0)),1),.echo -a Ops: $v1 $str($chr(152),$v1))
  $iif($round($calc($nick($1,0,v) * 100 / $nick($1,0)),1),.echo -a Voice: $v1 $str($chr(152),$v1))
  $iif($round($calc($nick($1,0,h) * 100 / $nick($1,0)),1),.echo -a Half-Ops: $v1 $str($chr(152),$v1))
} 
Menu nicklist,channel {
  Caca : caca $chan
}
 

Usage: right click in channel or nicklist, then select Caca

P.S.: Next time you post code in the forums, please use the Code Tags.