指数表示法到整数表示法 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, '#')