Subject: RE: Implicit casting from double to float
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Thu, 15 Jan 2009 11:29:56 -0000
|
This has now been logged as a Saxon bug and a fix is in Subversion
https://sourceforge.net/tracker2/?func=detail&aid=2509532&group_id=29872&ati
d=397617
I have also added a couple of test cases to the W3C XSLT test suite.
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Mukul Gandhi [mailto:gandhi.mukul@xxxxxxxxx]
> Sent: 07 January 2009 07:02
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Implicit casting from double to float
>
> 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,
>
> 10000
>
> 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;
> System.out.println(num);
>
> 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.
>
>
> --
> Regards,
> Mukul Gandhi
|