В XSL я получаю странное поведение. Я использую числовой формат, но что странно, когда я пропускаю данные, я получаю правильное число, когда у меня положительное число (число с плавающей точкой) (123,45 возвращается как 123,45), но если у меня есть отрицательное число (число с плавающей точкой), тогда оно округляется (-123,45 возвращается как -123,5)
Есть ли кто-нибудь, кто знает, что я могу сделать, чтобы исправить это, чтобы отрицательное число не было округлено?
Я использую PHP для вычисления числа.
XSL-код:
<xsl:decimal-format name="european" decimal-separator=',' grouping-separator='.' NaN="" />
<xsl:value-of select="format-number(number, '###.###,00','european')"/>
Когда я отправил: -123,45
XSL распечатано: -123.40
Когда я отправил: "-123.45" (или -> (строка) $ number; <- где $ number - это число с плавающей точкой)
XSL распечатано: -123,45 </p>
Итак, у меня возникла проблема: когда я вычислял положительное число, он возвращал мне текст в формате строки, но в отрицательной формуле я получал текст в формате с плавающей точкой из сценария PHP.
Может быть, я мог бы решить это на стороне XSL с некоторыми изменениями в коде числа-формата, чтобы XSL не округлял мои числа - есть идеи, как мне это сделать?