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);
}