XSL 将科学记数法转换为数字
Posted
技术标签:
【中文标题】XSL 将科学记数法转换为数字【英文标题】:XSL Convert Scientific notation to number 【发布时间】:2021-12-23 20:09:40 【问题描述】:我正在使用 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>
【问题讨论】:
使用xs:decimal
或xs:integer
代替默认的xs:double
(number
),也可以考虑使用format-number
。
【参考方案1】:
扩展 Martin 的评论,number()
函数转换为 xs:double
,xs:double
的默认输出格式是 1e-6 到 1e6 范围之外的值的科学计数法。
您可以使用xs:decimal()
函数代替number()
在xs:decimal
而不是xs:double
中进行算术运算,或者您可以使用@987654329 覆盖xs:double
值的格式化方式@函数。
顺便说一句,在number($intTotal)
中调用number()
是多余的,因为该值已经是xs:double
。使用as
属性声明变量的类型总是一个好主意,这样读者就可以清楚地知道发生了什么。
【讨论】:
以上是关于XSL 将科学记数法转换为数字的主要内容,如果未能解决你的问题,请参考以下文章