Я пытаюсь получить значение числа до 2 dec мест из моего xml.
XML: <Quantity>0.0050</Quantity>
XSL: <xsl:value-of select="format-number($quantity, '####0.00')" />
Однако XSL, похоже, имеет проблему с этим значением и выводит 0.00
в одной области страницы и 0.01
в другой. Конечно, в этой ситуации выгодно иметь вывод 0.01
во всех областях.
Другая область имеет значение 4.221
, но XSL выводит 4.23
.
Я понимаю, что format-number
как метод преобразует число в строку.
Не знаю, как это исправить.
EDIT:
Хорошо после того, как я немного обманул, я обнаружил, что это работает:
<xsl:value-of select='format-number( round(100*$quantity) div 100 ,"##0.00" )' />
Через этот веб-сайт
Поскольку этот парень упоминает, что XSL использует "банкиры округления" для округления до четных чисел вместо больших.
Решение вряд ли кажется элегантным и означает добавление тонны дополнительных функций к уже громоздкому и сложному XSL файлу. Неужели я чего-то не хватает?