Как рассчитать абсолютное значение числа в XSLT?
У меня
<xsl:value-of select="DifferenceInDays" />
DifferenceInDays
может быть отрицательным или положительным, я хочу показать его как положительный. Как я могу это сделать?
Ответы
Ответ 1
В XPath 1.0 используйте следующее выражение:
$vNum*($vNum >=0) - $vNum*($vNum < 0)
В случае, если это выражение встроено в атрибут XSLT (XML), символ <
должен быть экранирован:
$vNum*($vNum >=0) - $vNum*($vNum < 0)
В XPath 2.0 (XSLT 2.0) используйте функцию abs()
.
Ответ 2
Это может быть достигнуто с помощью функции абзаца xpath.
<xsl:value-of select="abs(DifferenceInDays)"/>
Ответ 3
diffInDays * (1 - 2 * (diffInDays < 0))
Ответ 4
Некоторые из ответов усложняют жизнь слишком много для XSLT 1.0, это на самом деле намного проще. Используя форматирование чисел, вы можете определить структуру для положительных и отрицательных чисел, отрицательный по умолчанию - -0
, однако вы можете определить свой собственный.
<xsl:value-of select='format-number(DifferenceInDays,"0;0")'/>
Вышеприведенный код покажет абсолютное значение Difference в Days, используя предоставленную функцию форматирования.