As described in action 185, the DFDL spec behaviour for the DFDL properties that control text number rounding was derived from the documented behaviour for ICU4J. However the documentation is not correct and the ICU4J behaviour is as described for ICU4C.  An ICU ticket was raised to clarify the position, and the intended behaviour is the observed behaviour. That affects the DFDL text number rounding properties as follows:
textNumberRounding Enum

Specifies how rounding is controlled during unparsing.

Valid values ‘pattern', 'explicit'

When dfdl:textNumberRep is 'standard' this property only applies when dfdl:textStandardBase is 10.

If 'pattern' then rounding takes place according to the pattern. A rounding increment may be specified in the dfdl:textNumberPattern using digits '1' though '9', otherwise rounding is to the width of the pattern. The rounding mode is always 'roundHalfEven'.

If 'explicit' then the rounding increment is specified by the dfdl:textNumberRoundingIncrement property, and any digits '1' through '9' in the dfdl:textNumberPattern are treated as digit '0'. The rounding mode is specified by the dfdl:textRoundingMode property.

To disable rounding, use 'explicit' in conjunction with 'roundUnnecessary' for the dfdl:textNumberRoundingMode. If rounding is disabled then any excess precision is treated as a processing error.

Annotation: dfdl:element, dfdl:simpleType

textNumberRoundingMode Enum

Specifies how rounding occurs during unparsing, when dfdl:textNumberRounding is 'explicit'.

When dfdl:textNumberRep is 'standard' this property only applies when  dfdl:textStandardBase is 10.

To switch off rounding, use 'roundUnnecessary'.

Valid values ‘roundCeiling’,  ‘roundFloor’, ‘roundDown’, ‘roundUp’, ‘roundHalfEven’,  ‘roundHalfDown’, ‘roundHalfUp', 'roundUnnecessary'

Annotation: dfdl:element, dfdl:simpleType

textNumberRoundingIncrement Double

Specifies the rounding increment to use during unparsing, when dfdl:textNumberRounding is 'explicit'.

When dfdl:textNumberRep is 'standard' this property only applies when  dfdl:textStandardBase is 10.

To switch off rounding, use 0.0.

A negative value is a schema definition error.

Annotation: dfdl:element, dfdl:simpleType


 
Regards

Steve Hanson
Architect, Data Format Description Language (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