JDK 8 code review request for 6964528: Double.toHexString(double d) String manipulation with + in an append of StringBuilder

Joe Darcy joe.darcy at oracle.com
Fri Feb 1 21:39:40 UTC 2013


Hello,

Please review a simple refactoring fix in Double.toHexString

     6964528: Double.toHexString(double d) String manipulation with + in 
an append of StringBuilder
     http://cr.openjdk.java.net/~darcy/6964528.0/

Patch below.

Thanks,

-Joe

--- old/src/share/classes/java/lang/Double.java    2013-02-01 
13:36:33.000000000 -0800
+++ new/src/share/classes/java/lang/Double.java    2013-02-01 
13:36:33.000000000 -0800
@@ -1,5 +1,5 @@
  /*
- * Copyright (c) 1994, 2012, Oracle and/or its affiliates. All rights 
reserved.
+ * Copyright (c) 1994, 2013, Oracle and/or its affiliates. All rights 
reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
@@ -289,7 +289,7 @@
              return Double.toString(d);
          else {
              // Initialized to maximum size of output.
-            StringBuffer answer = new StringBuffer(24);
+            StringBuilder answer = new StringBuilder(24);

              if (Math.copySign(1.0, d) == -1.0)    // value is negative,
                  answer.append("-");                  // so append sign 
info
@@ -300,8 +300,7 @@

              if(d == 0.0) {
                  answer.append("0.0p0");
-            }
-            else {
+            } else {
                  boolean subnormal = (d < DoubleConsts.MIN_NORMAL);

                  // Isolate significand bits and OR in a high-order bit
@@ -324,13 +323,14 @@
                                "0":
                                signif.replaceFirst("0{1,12}$", ""));

+                answer.append("p");
                  // If the value is subnormal, use the E_min exponent
                  // value for double; otherwise, extract and report d's
                  // exponent (the representation of a subnormal uses
                  // E_min -1).
-                answer.append("p" + (subnormal ?
-                               DoubleConsts.MIN_EXPONENT:
-                               Math.getExponent(d) ));
+                answer.append(subnormal ?
+                              DoubleConsts.MIN_EXPONENT:
+                              Math.getExponent(d));
              }
              return answer.toString();
          }




More information about the core-libs-dev mailing list