peiyongz    2003/02/25 09:24:18

  Modified:    c/src/xercesc/util XMLBigDecimal.cpp
  Log:
  Schema Errata: E2-44 totalDigits/fractDigits
  
  Revision  Changes    Path
  1.6       +20 -0     xml-xerces/c/src/xercesc/util/XMLBigDecimal.cpp
  
  Index: XMLBigDecimal.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLBigDecimal.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- XMLBigDecimal.cpp 2 Feb 2003 23:54:43 -0000       1.5
  +++ XMLBigDecimal.cpp 25 Feb 2003 17:24:18 -0000      1.6
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.6  2003/02/25 17:24:18  peiyongz
  + * Schema Errata: E2-44 totalDigits/fractDigits
  + *
    * Revision 1.5  2003/02/02 23:54:43  peiyongz
    * getFormattedString() added to return original and converted value.
    *
  @@ -138,6 +141,7 @@
       ArrayJanitor<XMLCh> janName(ret_value);
   
       parseBigDecimal(strValue, ret_value, fScale);
  +
       fIntVal = new XMLBigInteger(ret_value);
        fRawData = XMLString::replicate(strValue);
   }
  @@ -283,6 +287,22 @@
           *retPtr = *startPtr;
           retPtr++;
           startPtr++;
  +    }
  +
  +    /***
  +    E2-44 totalDigits
  +
  +     ... by restricting it to numbers that are expressible as i × 10^-n
  +     where i and n are integers such that |i| < 10^totalDigits and 0 <= n <= 
totalDigits. 
  +
  +        normalization: remove all trailing zero after the '.'
  +                       and adjust the scaleValue as well.
  +    ***/
  +    while (( scaleValue > 0 )           && 
  +           ( *(retPtr-1) == chDigit_0 )  )          
  +    {
  +        retPtr--;
  +        scaleValue--;
       }
   
       *retPtr = 0;   //terminated
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to