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