title: format-number() with picture string '#.##'
body: <p>I've been using the picture string '#.##" in XSLT 1.0 code for many years to format numbers with decimals if they have a fractional part, and not displaying decimals if there is no fractional part.</p>
  
  <pre><code>Saxon 6.5.5.
  format-number(123.456,'#.##’)   123.46
  format-number(123.000,'#.##’)   123
  </code></pre>
  
  <p>But when using XSLT 2.0 or 3.0, I'm getting different behavior.</p>
  
  <pre><code>Saxon 9.9.1.5J
  format-number(123.456,'#.##’)   123.46
  format-number(123.000,'#.##’)   123.0
  </code></pre>
  
  <p>I haven't been able to figure out why the last case has the fractional part.  <a href="https://www.w3.org/TR/xslt20/#dt-picture-string" rel="nofollow noreferrer">https://www.w3.org/TR/xslt20/#dt-picture-string</a> states:</p>
  
  <blockquote>
    <p>The minimum-fractional-part-size is set to the number of
    zero-digit-sign characters found in the fractional part of the
    sub-picture.</p>
  </blockquote>
  
  <p><a href="https://www.w3.org/TR/xpath-functions-30/#syntax-of-picture-string" rel="nofollow noreferrer">https://www.w3.org/TR/xpath-functions-30/#syntax-of-picture-string</a> states:</p>
  
  <blockquote>
    <p>The minimum-fractional-part-size is set to the number of
    decimal-digit-family characters found in the fractional part of the
    sub-picture.</p>
  </blockquote>
  
  <p>And with no zero-digit-sign and no decimal-digit-family characters, the fractional size should be zero, like it is in the XSLT 1.0 case.</p>
  
  <p>Am I missing something?</p>