[ 
https://issues.apache.org/jira/browse/JENA-1070?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15007264#comment-15007264
 ] 

Andy Seaborne edited comment on JENA-1070 at 11/16/15 8:55 PM:
---------------------------------------------------------------

See JENA-1047.

(sparql.org is behind the development master.)

Note, currently {{xsd:decimal("1e0"^^xsd:double)}} ==> {{"1."^^xsd:decimal}}
which is the canonical decimal for the value 1 in XSD 1.0 but in XSD 1.1 it is 
"1". Neither is short form for data or SPARQL and will be printed long-form.

That ought to be fixed to be "1"\^^xsd:decimal or "1.0"\^^xsd:decimal, 
depending on whether XSD canonical or the RDF short form is preferred.







was (Author: andy.seaborne):
See JENA-1047.

(sparql.org is behind the development master.)

Note, currently {{xsd:decimal("1e0"^^xsd:double)}} ==> {{"1."^^xsd:decimal}}
which is the canonical decimal for the value 1 in XSD 1.0 but in XSD 1.1 it is 
"1". Neither is short form for data or SPARQL and will be printed long-form.

That ought to be fixed to be "1"^^xsd:decimal or "1.0"^^xsd:decimal, depending 
on whether XSD canonical or the RDf short form is preferred.






> SPARQL: Cast from xsd:double to xsd:decimal fails
> -------------------------------------------------
>
>                 Key: JENA-1070
>                 URL: https://issues.apache.org/jira/browse/JENA-1070
>             Project: Apache Jena
>          Issue Type: Bug
>            Reporter: Richard Cyganiak
>            Priority: Minor
>
> Casting from xsd:double to xsd:decimal apparently doesn't work if the 
> xsd:double is in exponent notation. Example:
> {noformat}
> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
> SELECT (xsd:decimal("1e0"^^xsd:double) AS ?x) WHERE {}
> {noformat}
> I tried running this on sparql.org. I expect this to return 
> {{"1"^^xsd:decimal}} or {{"1.0"^^xsd:decimal}}. It returns nothing.
> It returns the expected xsd:decimal values when changing the lexical form 
> from "1e0" to "1.0" or "1", although these all represent the same legal 
> double value.
> The same problem occurs when casting to xsd:integer, or when the input is 
> xsd:float.
> I think the correct behaviour of the xsd:decimal and xsd:integer casting 
> functions are specified in 
> http://www.w3.org/TR/xpath-functions/#casting-to-numerics, and I read them as 
> stating that xsd:double inputs should work.
> Since pretty much any maths on xsd:double (including ROUND and FLOOR) returns 
> xsd:double in e notation, this issue makes it very hard to produce “pretty” 
> number output if the input contains xsd:doubles. It looks like one has to 
> resort to truncating the e0 part with string operations.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to