0

我正在使用 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>
4

1 回答 1

1

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

您可以使用函数xs:decimal代替,而不是 进行算术运算,也可以使用函数覆盖值的格式化方式。xs:doublexs:decimal()number()xs:doubleformat-number()

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

于 2021-11-11T12:15:12.360 回答