如何在 xslt-1.0 中获取绝对值

Posted

技术标签:

【中文标题】如何在 xslt-1.0 中获取绝对值【英文标题】:How to get absolute value in xslt-1.0 【发布时间】:2021-10-30 05:26:54 【问题描述】:

有没有一种方法可以获取 xslt-1.0 中数字的绝对值? abs() 函数有效,但在 xslt-2.0 中。

但我需要一种相同的 abs() 功能,但适用于 xslt-1.0

例如 => 输入 -1.5,预期输出 1.5

任何建议将不胜感激。

<xsl:value-of select="concat('-', abs(salesPrice/ns2:BelopFelt))"/>

可能会替换 abs(salesPrice/ns2:BelopFelt)

干杯

【问题讨论】:

【参考方案1】:

你可以使用:

translate($input, '-', '')

或者,如果您愿意:

(2*($input > 0) - 1)*$input

请注意,某些 XSLT 1.0 处理器支持EXSLT math:abs() extension function。

【讨论】:

不幸的是,数学没有运气:abs()。不过翻译没问题。它返回一个字符串。那么有什么办法可以将它转换回双精度可能是 可能的东西在这种情况下提供帮助,因为我需要计算后的差异并连接减号 在 XSLT 1.0 中,数据类型被隐式转换。例如:&lt;xsl:value-of select="translate(-5, '-', '') + 3" /&gt; 返回“5”。 (并且没有 double 数据类型。)此外,无需连接减号即可将值转换为负数:只需使用 -$yourValue 你是对的。这解决了这个问题。非常感谢您的帮助。真的很感激

以上是关于如何在 xslt-1.0 中获取绝对值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 XSLT 1.0 中获取具有唯一数字的数字?

在Shell中怎样对一个变量取绝对值

浮点数和整数相加并取绝对值

如何使用位操作在java中获取数字的绝对值

5_Math数学工具类的使用

取 CGFloat 的绝对值