【发布时间】:2022-12-11 03:03:07
【问题描述】:
我有一个要求,我应该获得 -0.0000000005 的绝对值。我尝试使用 <xsl:value-of select='abs(-0.0000000005)' /> 和 <xsl:value-of select="translate(-0.0000000005, '-', '')" /> 。但没有任何效果,并且始终将字母数字值设为 5.0E10。请在此处提供帮助,以从任何十进制数中获取正确的绝对值。
需要正确绝对值的代码才能从十进制数中获取
【问题讨论】:
-
您能否告诉我们您使用的是哪个 XSLT 处理器以及哪个版本的 XSLT?在 saxonica XSLT3 中,我从指令
<xsl:value-of select='abs(-0.0000000005)' />中得到了精确的0.0000000005。 -
嗨 Truisme,这是 XSLT 1.0 版
-
恐怕我还没有找到 XSLT 1.0 的简单解决方案。对于 XSLT 2.0 及更高版本,我在下面提供的答案应该适合您。
-
@Sandhya,您使用的是哪个 XSLT 处理器?当您说“什么都不起作用”时,请告诉我们它是如何失败的。我很惊讶任何 XSLT 1.0 处理器都会使用指数表示法生成输出:我们需要更多信息来帮助您解决这个问题。
-
@MichaelKay
libxslt如果该值已经是一个数字(如在给定的示例中),处理器将生成科学记数法。