用語 NaN は "not a number" を表し、他の方法では浮動小数点形式で利用できない値を表すシンボルを意味します。
NaN には 2 つの種類があります。
- 静的
未知の値または初期化されていない値を表します。
- シグナリング
特定の形式に対して大きすぎるか小さすぎる値およびシンボル値を表します。シグナリング NaN に対して演算を試みると、常に無効演算の例外が発生します。
コード例
次の例では、任意の値を NaN 値と比較する方法を示します。
XML ファイル (NaNValues.xml)
<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="NaNValues.xsl" ?>
<items>
<item>100</item>
<item>ABC</item>
</items>
XSLT ファイル (NaNValues.xsl)
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:template match="items">
<xsl:for-each select="item">
<xsl:call-template name="IsNaN"/>
</xsl:for-each>
</xsl:template>
<xsl:template name="IsNaN">
<!-- Parameter defined here -->
<xsl:param name="var" select="."/>
<xsl:value-of select="$var"/>
<xsl:if test="string(number($var)) = 'NaN'"> is a string. </xsl:if>
<xsl:if test="string(number($var)) != 'NaN'"> is a number. </xsl:if>
</xsl:template>
</xsl:stylesheet>
出力
出力結果は次のとおりです。
100 is a number. ABC is a string.