Саксон применяет правило:
Если (после выполнения вышеуказанных настроек) minimum-integer-part-size
и minimum-fractional-part-size
оба равны нулю, тогда minimum-fractional-part-size
устанавливается в 1 (один ).
XSLT 1.0 spe c для format-number () был определен в соответствии со спецификацией JDK 1.1, что было ошибкой, поскольку (a) оно всегда недооценивалось в JDK, и (b) эту версию спецификации JDK теперь почти невозможно достать. Таким образом, мы потратили много счастливых часов на написание нового spe c с нуля, в котором пытались воспроизвести JDK spe c в тех случаях, когда оно было четким и ненадежным, но заполняло пробелы. Мы учли то, как разные поставщики XSLT 1.0 интерпретировали spe c, но не рассматривали какие-либо существующие реализации (или JDK) как окончательные.
Ваш тестовый пример похож на тестовый пример numberformat228
в https://github.com/w3c/qt3tests/blob/master/fn/format-number.xml, и примечания для этого контрольного примера относятся к ошибке 29164. Запись об ошибке в https://www.w3.org/Bugs/Public/show_bug.cgi?id=29164 показывает, что приведенное выше правило было довольно поздним дополнением / замените на spe c (сентябрь 2015 г. - намного позже XPath 2.0).
Обсуждение в записи об ошибке предполагает, что основным соображением было предотвращение форматирования нуля как пустой строки. Возможно, оглядываясь назад, мы должны были рассмотреть этот случай специально.