You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vxquery.apache.org by pr...@apache.org on 2012/08/21 01:16:50 UTC

svn commit: r1375304 - /incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToStringOperation.java

Author: prestonc
Date: Mon Aug 20 23:16:49 2012
New Revision: 1375304

URL: http://svn.apache.org/viewvc?rev=1375304&view=rev
Log:
Update the print integer to work with zero.

Modified:
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToStringOperation.java

Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToStringOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToStringOperation.java?rev=1375304&r1=1375303&r2=1375304&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToStringOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToStringOperation.java Mon Aug 20 23:16:49 2012
@@ -169,7 +169,7 @@ public class CastToStringOperation exten
     public void convertDoubleCanonical(DoublePointable doublep, DataOutput dOut) throws SystemException, IOException {
         abvsInner.reset();
         double value = doublep.getDouble();
-        
+
         if (Double.isInfinite(value)) {
             if (value == Double.NEGATIVE_INFINITY) {
                 writeCharSequence("-", dOutInner);
@@ -627,12 +627,16 @@ public class CastToStringOperation exten
             writeChar('-', dOutInner);
             value *= -1;
         }
-        int nDigits = (int) Math.log10(value) + 1;
-        long pow10 = (long) Math.pow(10, nDigits - 1);
-        for (int i = nDigits - 1; i >= 0; --i) {
-            writeChar((char) ('0' + (value / pow10)), dOutInner);
-            value %= pow10;
-            pow10 /= 10;
+        if (value == 0) {
+            writeChar((char) ('0'), dOutInner);
+        } else {
+            int nDigits = (int) Math.log10(value) + 1;
+            long pow10 = (long) Math.pow(10, nDigits - 1);
+            for (int i = nDigits - 1; i >= 0; --i) {
+                writeChar((char) ('0' + (value / pow10)), dOutInner);
+                value %= pow10;
+                pow10 /= 10;
+            }
         }
         sendStringDataOutput(dOut);
     }