指数表示法到整数表示法 XSLT2.0
exponential notation to integer notation XSLT2.0
是否可以使用 XSLT 2.0 将以下指数表示法更改为整数表示法。
2.0151109001E10
到
20151109001
我试过
number(2.0151109001E10)
但它给出了 NaN 作为答案。
编辑:
XSLT:
<xsl:variable name="a" select="ss:Cell[$key]/ss:Data"/>
<xsl:variable name="b" select="string($a)"/>
<xsl:variable name="c" select="number($b)"/>
输出:
<a>2.0151109001E10</a>
<b>2.0151109001E10</b>
<c>2.0151109001E10</c>
以下算出
<xsl:value-of select="xs:decimal(xs:double(translate($a, ',', '.')))"/>
您可以尝试将它们放在单引号内 ''
,如下所示:
number('7.2345E7')
给予
72340000
您输入的真正问题不是指数表示法,而是使用逗号作为小数点。 XML 只识别句点作为小数点。
试试这样的东西:
<xsl:value-of select="xs:decimal(xs:double(translate($a, ',', '.')))"/>
或:
<xsl:value-of select="format-number(translate($a, ',', '.'), '0')"/>
您可以使用 format-number:
format-number(2.0151109001E10, '#')
是否可以使用 XSLT 2.0 将以下指数表示法更改为整数表示法。
2.0151109001E10 到 20151109001
我试过
number(2.0151109001E10)
但它给出了 NaN 作为答案。
编辑: XSLT:
<xsl:variable name="a" select="ss:Cell[$key]/ss:Data"/>
<xsl:variable name="b" select="string($a)"/>
<xsl:variable name="c" select="number($b)"/>
输出:
<a>2.0151109001E10</a>
<b>2.0151109001E10</b>
<c>2.0151109001E10</c>
以下算出
<xsl:value-of select="xs:decimal(xs:double(translate($a, ',', '.')))"/>
您可以尝试将它们放在单引号内 ''
,如下所示:
number('7.2345E7')
给予
72340000
您输入的真正问题不是指数表示法,而是使用逗号作为小数点。 XML 只识别句点作为小数点。
试试这样的东西:
<xsl:value-of select="xs:decimal(xs:double(translate($a, ',', '.')))"/>
或:
<xsl:value-of select="format-number(translate($a, ',', '.'), '0')"/>
您可以使用 format-number:
format-number(2.0151109001E10, '#')