指数表示法到整数表示法XSLT2.0
是否可以使用XSLT2.0将以下指数表示法更改为整数表示法 2.0151109001E10 到 20151109001 我试过了指数表示法到整数表示法XSLT2.0,xslt,xslt-2.0,Xslt,Xslt 2.0,是否可以使用XSLT2.0将以下指数表示法更改为整数表示法 2.0151109001E10 到 20151109001 我试过了 number(2.0151109001E10) 但它给了楠一个答案 编辑: XSLT: 输出: <a>2.0151109001E10</a> <b>2.0151109001E10</b> <c>2.0151109001E10</c> 2.0151109001E10 2.0151109
number(2.0151109001E10)
但它给了楠一个答案
编辑:
XSLT:
输出:
<a>2.0151109001E10</a>
<b>2.0151109001E10</b>
<c>2.0151109001E10</c>
2.0151109001E10
2.0151109001E10
2.0151109001E10
下面的方法是可行的
<xsl:value-of select="xs:decimal(xs:double(translate($a, ',', '.')))"/>
您可以尝试将它们放在单引号中,如下所示:
number('7.2345E7')
给予
输入的真正问题不是指数符号,而是使用逗号作为小数点。XML仅将句点识别为十进制标记 尝试以下方法:
<xsl:value-of select="xs:decimal(xs:double(translate($a, ',', '.')))"/>
或:
您可以使用格式编号:
format-number(2.0151109001E10, '#')
我正在做数字(字符串(72345E7))。但事实并非如此working@Joe:-只需执行:
number('7.2345E7')
我进一步证实了我的问题72345e7来自哪里?@michael-数据是使用XSLTIf从Excel xml文件读取的如果给定的数字不包含逗号-如您编辑示例后所示-那么就没有理由使用translate()
将其转换为句点。
<xsl:value-of select="xs:decimal(xs:double(translate($a, ',', '.')))"/>
<xsl:value-of select="format-number(translate($a, ',', '.'), '0')"/>
format-number(2.0151109001E10, '#')