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:double
,xs:double
的默认输出格式是 1e-6 到 1e6 范围之外的值的科学记数法。
您可以在 xs:decimal
而不是 xs:double
中进行算术运算,方法是使用 xs:decimal()
函数代替 number()
,或者您可以覆盖 xs:double
值使用 format-number()
函数格式化。
顺便提一下,在 number($intTotal)
中调用 number()
是多余的,因为该值已经是一个 xs:double
。用 as
属性声明变量的类型总是一个好主意,这样 reader 就可以清楚地知道发生了什么。
我正在使用 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:double
,xs:double
的默认输出格式是 1e-6 到 1e6 范围之外的值的科学记数法。
您可以在 xs:decimal
而不是 xs:double
中进行算术运算,方法是使用 xs:decimal()
函数代替 number()
,或者您可以覆盖 xs:double
值使用 format-number()
函数格式化。
顺便提一下,在 number($intTotal)
中调用 number()
是多余的,因为该值已经是一个 xs:double
。用 as
属性声明变量的类型总是一个好主意,这样 reader 就可以清楚地知道发生了什么。