[xquery-talk] avoid divide by zero

Liam Quin liam at w3.org
Fri May 26 07:06:35 PDT 2006

On Wed, May 24, 2006 at 11:59:21PM -0700, fatma helmy wrote:
> regarding my xquery
> <RATIO> 
> {string( round( count($paths[.=$p]) div
> count($paths[.=$papa]) * 100 ) )} 
> </RATIO> 
> I have a statement that might cause divide by zero, is
> there any statement to replace zero by one when it
> occurs. 

You have to ask what the RATIO element is representing in
this case; perhaps it would be better to omit the element:

  if (count($path[.=$papa]))
          count($paths[. = $p]) div
          count($paths[. = $papa]) * 100
  else ()

Generally, if you find yourself using a different value in
a calculation to avoid an error, it's worth asking if you
should be doing the calculation at all.


Liam Quin, W3C XML Activity Lead, http://www.w3.org/People/Quin/
http://www.holoweb.net/~liam/ * http://www.fromoldbooks.org/

More information about the talk mailing list