Agree. Tracker updated.
Regards
Steve Hanson
Architect, IBM
DFDL
Co-Chair, OGF
DFDL Working Group
IBM SWG, Hursley, UK
smh@uk.ibm.com
tel:+44-1962-815848
From:
Mike Beckerle <mbeckerle.dfdl@gmail.com>
To:
Steve Hanson/UK/IBM@IBMGB
Date:
10/12/2014 21:12
Subject:
Re: [DFDL-WG]
Binary decimal virtual point - unparsing behaviour
(a) is more conservative, so I tend to want to go with
that.
We have rounding functions in our DFDL expression language.
We know we're already on a design point here where the application will
have to implement truncation/rounding logic after any arithmetic operation
that can mess with the number of fraction digits that will be expressed.
You'd like to think that would be only multiplication/division - but I'm
not sure. Much depends on what is happening with xs:decimal values in the
application, and also depends on what the representation of xs:decimal
values is, in the application that is manipulating them.
The simplest way to see the issue is imagine the application is taking
decimal numbers, converting them to float, operating on float, and then
storing the result back into a decimal value of the DFDL infoset.
Consider 1.10 decimal. If you convert to float and back, you might get
1.099609375. This looks like it has a lot more precision, but in fact it
is the closest decimal value to the binary float value closest to 1.1 (decimal).
An application has to implement base 10 rounding or truncation
on the fractional part in order to insure that the behavior makes sense.
Mike Beckerle | OGF DFDL Workgroup Co-Chair | Tresys Technology
| www.tresys.com
Please note: Contributions to the DFDL Workgroup's email
discussions are subject to the OGF
Intellectual Property Policy
On Wed, Dec 10, 2014 at 2:21 PM, Steve Hanson <smh@uk.ibm.com>
wrote:
Sorry, but I need a clarification on
this.
Spec says ""When unparsing
a binary number (packed decimal or twos-complement) and excess precision
is supplied in the Infoset no rounding occurs. It is a processing error.""
Technically, precision is the number of digits, and trailing zeros are
significant even after a decimal point.
So is it a processing error if I supply an infoset decimal value of 123.990
and a BDVP of 2? While this can be serialized to an integer,
the original decimal has excess precision.
Similarly for an infoset decimal value of 12300.0 and a BDVP of
-2. This can be serialized to an integer, but the original decimal
has excess precision.
What this amounts to is whether we give a processing error a) whenever
the infoset supplies excess precision, or b) only when the excess precision
results in a decimal that can't be converted into an integer.
Regards
Steve Hanson
Architect, IBM
DFDL
Co-Chair, OGF
DFDL Working Group
IBM SWG, Hursley, UK
smh@uk.ibm.com
tel:+44-1962-815848
From: Steve
Hanson/UK/IBM
To: DFDL-WG
<dfdl-wg@ogf.org>
Date: 09/12/2014
17:45
Subject: Re:
Binary decimal virtual point - unparsing behaviour
DFDL WG agreed that this is a processing error. http://redmine.ogf.org/issues/249
Regards
Steve Hanson
Architect, IBM
DFDL
Co-Chair, OGF
DFDL Working Group
IBM SWG, Hursley, UK
smh@uk.ibm.com
tel:+44-1962-815848
From: Steve
Hanson/UK/IBM
To: DFDL-WG
<dfdl-wg@ogf.org>
Date: 05/12/2014
11:05
Subject: Binary
decimal virtual point - unparsing behaviour
I am not finding anywhere in the DFDL spec that says explicitly what happens
during unparsing when a decimal value is given to the unparser, and its
rep is binary, and the BDVP is not sufficient to remove the decimal point
from the value. This is surely a processing error, because the spec states
in section 13.7.1 "When unparsing
a binary number (packed decimal or twos-complement) and excess precision
is supplied in the Infoset no rounding occurs. It is a processing error."
Regards
Steve Hanson
Architect, IBM
DFDL
Co-Chair, OGF
DFDL Working Group
IBM SWG, Hursley, UK
smh@uk.ibm.com
tel:+44-1962-815848
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU
--
dfdl-wg mailing list
dfdl-wg@ogf.org
https://www.ogf.org/mailman/listinfo/dfdl-wg
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU