使用sum函数时如何保留十进制格式



我需要添加每次出现的 totalPackageQuantity、totalGrossVolume 和 totalGrossWeight

<packageTotal>
  <packageTypeCode>BX</packageTypeCode>
  <totalPackageQuantity>3</totalPackageQuantity>
  <totalGrossVolume measurementUnitCode="CBM">0.026000</totalGrossVolume>
  <totalGrossWeight measurementUnitCode="KGM">2.880000</totalGrossWeight>
</packageTotal>
  <packageTotal>
  <packageTypeCode>BX</packageTypeCode>
  <totalPackageQuantity>3</totalPackageQuantity>
  <totalGrossVolume measurementUnitCode="CBM">0.026000</totalGrossVolume>
  <totalGrossWeight measurementUnitCode="KGM">2.880000</totalGrossWeight>
</packageTotal>

在上面的xml结构上,我对每个的期望值

5.760000(总重量)

0.052000 (对于总交易量)

我目前正在使用这个

sum(packageTotal/totalGrossWeight)

使用 sum 函数它去除了一些十进制值,我需要十进制格式保持原样。如果只有一次出现,则值将按原样显示。

不可能

"保留"格式,因为给定的值必须先转换为数字才能求和 - 并且数字没有格式。

如果您知道所需的精度是小数点后六位,则只需使用:

<xsl:value-of select="format-number(sum(packageTotal/totalGrossWeight), '0.000000')"/>

如果您需要动态恢复原始格式,请尝试:

<xsl:variable name="format" select="translate(packageTotal[1]/totalGrossWeight, '123456789', '000000000')" />
<xsl:value-of select="format-number(sum(packageTotal/totalGrossWeight), $format)"/>

最新更新