2014-10-30 4 views
-1

저는 xsl을 처음 사용하면서 문제가 있습니다. 다음을 시도 할 때 항상 "NaN"을 얻습니다."format-number"변수가있는 xsl "value-of"연산

<xsl:variable name="amount" select="format-number(ARTICLE_PRICE/PRICE_LINE_AMOUNT, '0,00')" /> 
<xsl:variable name="quantity" select="format-number($quantity, '0,0#')"/> 
<xsl:value-of select="format-number($amount * $quantity, '0,00')" /> 

누군가 내가 뭘 잘못하고 있다고 말할 수 있습니까? 여러 페이지 중

+1

입력 값을 표시 할 수 있습니까? –

답변

1

하나의 가능한 이유는

형식 번호()의 결과는 문자열이며; 문자열을 숫자로 다시 변환 할 수없는 경우 (예 : 쉼표가 포함 된 경우), 곱할 수 없습니다.

0

글쎄, 내가 이런 식으로 할 경우 :

<xsl:variable name="quantity" select="format-number($quantity, '0,0#')"/> 
<xsl:value-of select="format-number(ARTICLE_PRICE/PRICE_LINE_AMOUNT * $quantity, '0,00')" /> 

그것은 작동합니다. 여전히 "amount"변수를 설정하면 작동하지 않는 이유가 궁금합니다.

+0

"* 작동합니다. *"아닙니다. 당신은 순환 정의를가집니다. 형식 문자열의 형식이 잘못되었습니다. –

0

'NaN'값은 비어 있거나 유효한 숫자가 아닌 값에 format-number()를 사용하려고 함을 의미합니다. 값을 숫자로 사용하기 전에 값을 테스트해야합니다. 곱하기 전에 서식을 지정하는 것은 쓸모가 없습니다 (다른 곳에 사용하지 않는 경우)