XSL 将科学计数法转换为数字

XSL Convert Scientific notation to number

我正在使用 XSL 2.0。我有以下 $intTOTAL ,我正在将其转换为毫秒。但它的输出是用气味符号表示的。没有科学计数法如何把它转换成一个正常的数字

<xsl:variable name="intTotal" select="((number($timeINTSEC)*60)*1000 + number($timeINTMSEC))"/>
<TEST><xsl:value-of select="number($intTotal)"/></TEST>

这是我得到的输出

 <TEST>1.14E6</TEST>

扩展 Martin 的评论,number() 函数转换为 xs:doublexs:double 的默认输出格式是 1e-6 到 1e6 范围之外的值的科学记数法。

您可以在 xs:decimal 而不是 xs:double 中进行算术运算,方法是使用 xs:decimal() 函数代替 number(),或者您可以覆盖 xs:double 值使用 format-number() 函数格式化。

顺便提一下,在 number($intTotal) 中调用 number() 是多余的,因为该值已经是一个 xs:double。用 as 属性声明变量的类型总是一个好主意,这样 reader 就可以清楚地知道发生了什么。