Bugzilla will be upgraded to version 5.0. The upgrade date is tentatively scheduled for 2 December 2018, pending final testing and feedback.
Bug 513426 - string to double conversion results in questionable precision
string to double conversion results in questionable precision
Status: CLOSED ERRATA
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-java (Show other bugs)
1.2
All Linux
low Severity medium
: 1.3
: ---
Assigned To: Rajith Attapattu
Jiri Kolar
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2009-07-23 11:29 EDT by Rafael H. Schloming
Modified: 2014-12-01 18:14 EST (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Previously, a string to double conversion returned imprecise results. With this update, string values are correctly converted directly to double values instead of converting them to a float value and then to a double value.
Story Points: ---
Clone Of:
Environment:
Last Closed: 2010-10-14 11:58:10 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2010:0773 normal SHIPPED_LIVE Moderate: Red Hat Enterprise MRG Messaging and Grid Version 1.3 2010-10-14 11:56:44 EDT

  None (edit)
Description Rafael H. Schloming 2009-07-23 11:29:40 EDT
The following test:
 
public void testString2Double_1() {
    try {
      Message message = senderSession.createMessage();
      message.setStringProperty("pi", "3.14159");
      assertEquals(3.14159, message.getDoubleProperty("pi"),0);
    } catch (JMSException e) {
      fail(e);
    }
  }
 
Fails with:
 
        junit.framework.AssertionFailedError: expected:<3.14159> but was:<3.141590118408203>

This appears to be because the client ends up doing the equivalent of Double.valueOf(Float.valueOf(value)) when doing string to double conversion rather than the more direct Double.valueOf(value).
Comment 4 Jiri Kolar 2010-09-30 10:17:50 EDT
fixed in qpid-java-client-0.7.946106-10.el5
validated on RHEL5.5/RHEL 4.8  i386 / x86_64  

packages:
# rpm -qa | grep -E '(qpid|openais|rhm)' | sort -u
openais-0.80.6-16.el5_5.7
openais-devel-0.80.6-16.el5_5.7
python-qpid-0.7.946106-14.el5
qpid-cpp-client-0.7.946106-17.el5
qpid-cpp-client-devel-0.7.946106-17.el5
qpid-cpp-client-devel-docs-0.7.946106-17.el5
qpid-cpp-client-ssl-0.7.946106-17.el5
qpid-cpp-mrg-debuginfo-0.7.946106-14.el5
qpid-cpp-server-0.7.946106-17.el5
qpid-cpp-server-cluster-0.7.946106-17.el5
qpid-cpp-server-devel-0.7.946106-17.el5
qpid-cpp-server-ssl-0.7.946106-17.el5
qpid-cpp-server-store-0.7.946106-17.el5
qpid-cpp-server-xml-0.7.946106-17.el5
qpid-java-client-0.7.946106-10.el5
qpid-java-common-0.7.946106-10.el5
qpid-tools-0.7.946106-11.el5
rhm-docs-0.7.946106-5.el5
rh-tests-distribution-MRG-Messaging-qpid_common-1.6-53

->VERIFIED
Comment 5 Rajith Attapattu 2010-10-07 14:28:52 EDT
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Cause: String to double conversion results in questionable precision.

Consequence: If we set a property name "pi" as follows message.setStringProperty("pi", "3.14159");
And when it's retrieved as double using message.getDoubleProperty("pi"),0) it returns "3.141590118408203"

Fix: The code now correctly converts the string value directly to double instead of converting it to a float and then to a double.


Result: The get method now returns the value with the correct precision.
Comment 6 Martin Prpič 2010-10-10 07:43:49 EDT
    Technical note updated. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    Diffed Contents:
@@ -1,9 +1 @@
-Cause: String to double conversion results in questionable precision.
+Previously, a string to double conversion returned imprecise results. With this update, string values are correctly converted directly to double values instead of converting them to a float value and then to a double value.-
-Consequence: If we set a property name "pi" as follows message.setStringProperty("pi", "3.14159");
-And when it's retrieved as double using message.getDoubleProperty("pi"),0) it returns "3.141590118408203"
-
-Fix: The code now correctly converts the string value directly to double instead of converting it to a float and then to a double.
-
-
-Result: The get method now returns the value with the correct precision.
Comment 8 errata-xmlrpc 2010-10-14 11:58:10 EDT
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2010-0773.html

Note You need to log in before you can comment on or make changes to this bug.