xslt1を使用して単純な乗算を実行するための以下のコードがあります
<observedRate>
<xsl:value-of select="Input * 100"/>
</observedRate>
ただし、入力= 0.0107の場合、上記は1.07ではなく1.069999999999999999998を返します。
私は過去にこの問題に1、2回遭遇し、以下のようなことを行うことで問題を克服することができました(この場合は機能します)
<observedRate>
<xsl:value-of select="( Input div 10) * 1000"/>
</observedRate>
このソリューションにはいくつか問題があります。
- そのハックとあまり見栄えがよくありません
- 'Input'の値は小数点以下の桁数になり得ることを考えると、可能なすべての値を処理できるとは確信していません。
それで、入力変数が定義された長さではないすべての場合に機能するxslt1を使用してマルチプルするための優れたソリューションはありますか?