RE: Implicit casting from double to float
My first thoughts are that XSLT should raise an error on this, and if Saxon isn't raising an error then it's a bug. But I need to investigate a bit more deeply. Yes, it's totally ridiculous to allow decimal->float promotion but not double->float, but that's what the spec says. 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
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format