I cannot find the original email thread about this, but for records/posterity...

The issue is described in this JIRA ticket: https://issues.apache.org/jira/browse/DAFFODIL-2859 

That was closed as "Won't Fix".

In short, why does 0.12 format as "0.12" instead of ".12" when textNumberPattern is "#.##".  It would seem that "#.##" would mean the leading 0 is optional. But it doesn't. 
ICU chooses the minimum number of integer digits to be 1 even when the textNumberPattern has "#" before the decimal point. 

ICU team did not resolve this either way, the bug I reported there remains open: https://unicode-org.atlassian.net/browse/CLDR-17309 

But, this would be a significant change in ICU behavior, so probably cannot change in ICU without requiring a switch be thrown to enable it. 

Mike Beckerle 
Apache Daffodil PMC | daffodil.apache.org
OGF DFDL Workgroup Co-Chair | www.ogf.org/ogf/doku.php/standards/dfdl/dfdl
Owl Cyber Defense | www.owlcyberdefense.com