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

Vitaly Davidovich vitalyd at gmail.com
Fri Feb 1 22:07:35 UTC 2013


I'm with Louis on this one.  Since you're changing this code anyway, I
don't see any reason to use string here.

Sent from my phone
On Feb 1, 2013 4:45 PM, "Joe Darcy" <joe.darcy at oracle.com> wrote:

> On 02/01/2013 01:41 PM, Louis Wasserman wrote:
>
>> Would appending the character 'p' instead of the string "p" make any
>> difference?
>>
>
> Not a big enough one for me to feel compelled to look into it ;-)
>
> -Joe
>
>
>>
>> On Fri, Feb 1, 2013 at 1:39 PM, Joe Darcy <joe.darcy at oracle.com <mailto:
>> joe.darcy at oracle.com>> wrote:
>>
>>     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/<http://cr.openjdk.java.net/~darcy/6964528.0/>
>>     <http://cr.openjdk.java.net/%**7Edarcy/6964528.0/<http://cr.openjdk.java.net/%7Edarcy/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();
>>              }
>>
>>
>>
>>
>> --
>> Louis Wasserman
>>
>
>



More information about the core-libs-dev mailing list