2

我有以下代码用于使用 xslt1 执行简单的乘法

<observedRate>
<xsl:value-of select="Input * 100"/>
</observedRate>

但是,当 Input = 0.0107 时,上述返回 1.069999999999999999998 而不是 1.07。

我过去曾遇到过一次或两次这个问题,并设法通过执行以下操作来克服它(在这种情况下有效)

<observedRate>
<xsl:value-of select="( Input div 10) * 1000"/>
</observedRate>

我对这个解决方案有几个问题,即

  1. 它是一个黑客,看起来不太好
  2. 我不确定它是否可以处理所有可能的值,因为“输入”的值可以是任意小数位

那么有没有一个很好的使用 xslt1 进行乘法运算的解决方案,它适用于输入变量不是定义长度的所有情况?

4

1 回答 1

0

尝试这个:

<xsl:value-of select='format-number(Input * 100, "#.00")' />

http://www.w3schools.com/xsl/func_formatnumber.asp

希望这可以帮助!

于 2012-11-08T15:05:43.573 回答