【问题标题】:XSL Convert Scientific notation to numberXSL 将科学记数法转换为数字
【发布时间】: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:decimalxs:integer代替默认的xs:doublenumber),也可以考虑使用format-number

标签: xml xslt timecodes


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2015-07-03
    • 2019-04-22
    • 2022-10-06
    • 1970-01-01
    • 2017-11-27
    • 2014-09-25
    • 2020-08-02
    • 2019-04-21
    • 1970-01-01
    相关资源
    最近更新 更多