[xsl] Implicit casting from double to float

Subject: [xsl] Implicit casting from double to float
From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx>
Date: Wed, 7 Jan 2009 12:31:48 +0530
Hi all,
   When I ran the following XSLT 2.0 code, with Saxon 9.x

<xsl:variable name="num1" select="xs:double('1e4')" as="xs:double" />
<xsl:variable name="num2" select="$num1" as="xs:float" />
<xsl:value-of select="$num2" />

I get the output,


The XSLT 2.0 processor has no problem doing this operation. No warning
is produced either.

But a similar operation in Java is a serious compile time error,

Please consider this Java fragment,

float num = (double)1e4;

This Java fragment doesn't compile, and following error is generated,

test.java:3: possible loss of precision
found   : double
required: float

float num = (double)1e4;

Could somebody please explain this behavior with the XSLT 2.0 system.

Mukul Gandhi

Current Thread