我有以下代码用于使用 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>
我对这个解决方案有几个问题,即
- 它是一个黑客,看起来不太好
- 我不确定它是否可以处理所有可能的值,因为“输入”的值可以是任意小数位
那么有没有一个很好的使用 xslt1 进行乘法运算的解决方案,它适用于输入变量不是定义长度的所有情况?