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>
Найденный ответ. Предупреждение. С некоторыми XSLT-процессорами использование десятичных чисел может привести к небольшой ошибке. Например, «3.2 - 4» в этом примере выводится как «-7999999999999998» на некоторых процессорах. Несмотря на то, что вы отсутствуете на .0000000000000002, это не так много, будучи выключенным вообще, показывает, что математика не является сильной стороной XSLT. – Tyde
Речь идет не о xslt. Речь идет о том, как числа с плавающей запятой представлены на компьютерах в целом. Вы можете получать похожие результаты практически на любом языке при использовании типов float/double. – Pawel