2013-03-13 2 views
0

У меня возникла проблема со следующим кодом XSL.Вычитание XSLT

Это действительно простое вычитание, но оно делает что-то странное. Я знаю, что могу просто использовать format-number, но может кто-нибудь объяснить мне, почему я получаю 0.4299999999999997 вместо ожидаемого 0.43?

<xsl:template match="/"> 
    <root> 
     <xsl:value-of select="36.98 - 36.55"></xsl:value-of> 
    </root> 
</xsl:template> 
+0

Найденный ответ. Предупреждение. С некоторыми XSLT-процессорами использование десятичных чисел может привести к небольшой ошибке. Например, «3.2 - 4» в этом примере выводится как «-7999999999999998» на некоторых процессорах. Несмотря на то, что вы отсутствуете на .0000000000000002, это не так много, будучи выключенным вообще, показывает, что математика не является сильной стороной XSLT. – Tyde

+0

Речь идет не о xslt. Речь идет о том, как числа с плавающей запятой представлены на компьютерах в целом. Вы можете получать похожие результаты практически на любом языке при использовании типов float/double. – Pawel

ответ