Author: sandygao
Date: Fri Nov  5 20:20:00 2010
New Revision: 1031774

URL: http://svn.apache.org/viewvc?rev=1031774&view=rev
Log:
Bug fix: total digits for precision decimal is t in "values are expressible in 
scientific notation using at most t digits for the coefficient." So for 
"0.003", total digits is 1, not 3 or 4.

Modified:
    
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/dv/xs/PrecisionDecimalDV.java

Modified: 
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/dv/xs/PrecisionDecimalDV.java
URL: 
http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/dv/xs/PrecisionDecimalDV.java?rev=1031774&r1=1031773&r2=1031774&view=diff
==============================================================================
--- 
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/dv/xs/PrecisionDecimalDV.java
 (original)
+++ 
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/dv/xs/PrecisionDecimalDV.java
 Fri Nov  5 20:20:00 2010
@@ -137,9 +137,20 @@ class PrecisionDecimalDV extends TypeVal
             intDigits = intEnd - actualIntStart;
             if (intDigits > 0) {
                 ivalue = content.substring(actualIntStart, intEnd);
+                totalDigits = intDigits + fracDigits;
+            }
+            else {
+                totalDigits = fracDigits;
+                for (int i = 0; i < fracDigits; i++,totalDigits--) {
+                    if (fvalue.charAt(i) != '0') {
+                        break;
+                    }
+                }
+                if (totalDigits == 0) {
+                    totalDigits = 1;
+                }
             }
 
-            totalDigits = intDigits + fracDigits;
             precision = fracDigits - pvalue;
         }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to