[From nobody Fri Apr 10 19:21:05 2026
Received: (at submit) by bugs.debian.org; 12 Jan 2024 14:55:54 +0000
X-Spam-Checker-Version: SpamAssassin 3.4.6-bugs.debian.org_2005_01_02
 (2021-04-09) on buxtehude.debian.org
X-Spam-Level: 
X-Spam-Status: No, score=-4.4 required=4.0 tests=BAYES_00,FOURLA,
 FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,FROMDEVELOPER,
 HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,
 RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,
 WORD_WITHOUT_VOWELS autolearn=ham autolearn_force=no
 version=3.4.6-bugs.debian.org_2005_01_02
X-Spam-Bayes: score:0.0000 Tokens: new, 31; hammy, 96; neutral, 30; spammy, 0.
 spammytokens: hammytokens:0.000-+--H*F:U*malat,
 0.000-+--H*rp:U*mathieu.malaterre, 0.000-+--UD:cxx, 0.000-+--uint8_t,
 0.000-+--H*r:209.85.160
Return-path: &lt;mathieu.malaterre@gmail.com&gt;
Received: from mail-oa1-f53.google.com ([209.85.160.53]:61473)
 by buxtehude.debian.org with esmtps
 (TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_128_GCM:128)
 (Exim 4.94.2) (envelope-from &lt;mathieu.malaterre@gmail.com&gt;)
 id 1rOIws-007wx3-LZ
 for submit@bugs.debian.org; Fri, 12 Jan 2024 14:55:54 +0000
Received: by mail-oa1-f53.google.com with SMTP id
 586e51a60fabf-204fdd685fdso5000179fac.2
 for &lt;submit@bugs.debian.org&gt;; Fri, 12 Jan 2024 06:55:53 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1705071351; x=1705676151;
 h=to:subject:message-id:date:from:in-reply-to:references:mime-version
 :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=9fuGS9sC8lf8vIXowCS5q6U0cXE5AGEKo/0KeHP9qzo=;
 b=h9x8IX+/lVMX3XE7Co6oDyKCYOQENiyIwu4mKNAmEH6JbQfhsDQFNlKpgsXE2z8elW
 4PmxfUFLWfxWcvAo4qfGrElhtgZOKO9/C72JYzjGIwyPVSjniEWE9ZQBIA7smGJkzF8b
 kR9QZFekVpnoNfJJnBviYiT1DSpfebU2gBpoklOkoQi0A1X0KluhSydTmchiJTk/eFQY
 0B7H3WZhuH5kvbvmcAxYFd/4RWkFn2hVLYNYsvBXHdHlehP6fRLv8ZZjTqfVTyCGqCNf
 M3LCiDp7vdM1N4RhluuStjdmhCVrBVpYRrQBRuvXWxlNDDmyLcakt4kKaqp6kcIUyas2
 OvVQ==
X-Gm-Message-State: AOJu0YyXvFBWJ+3lSKBM20VkwSSqKb8jVSBUplxpeSpCOrrz9XnPr/Ot
 xWS2VjGoidneqkDGhC5OcCZzFhFWXvyy0LTkIERRP+4NrLt0Aw==
X-Google-Smtp-Source: AGHT+IHmwEUp1D/XDqeUiOI9w7sRn6oVQNviuIyujuvLi/beGj3cutvu5ewCY/b+vriD0OufDliYyGdDpLfvYxUIREk=
X-Received: by 2002:a05:6871:7825:b0:206:745d:803e with SMTP id
 oy37-20020a056871782500b00206745d803emr1640183oac.65.1705071351109; Fri, 12
 Jan 2024 06:55:51 -0800 (PST)
MIME-Version: 1.0
References: &lt;CA+7wUsxPmkAVFOP5WTFY-7S1VpRCzhRXtdxsg-EV+9E4x69E4w@mail.gmail.com&gt;
In-Reply-To: &lt;CA+7wUsxPmkAVFOP5WTFY-7S1VpRCzhRXtdxsg-EV+9E4x69E4w@mail.gmail.com&gt;
From: Mathieu Malaterre &lt;malat@debian.org&gt;
Date: Fri, 12 Jan 2024 15:55:40 +0100
Message-ID: &lt;CA+7wUsxubZd_U1hRWr84rX4MV3zqaScRHbwgp5iGQg9Jwf1csg@mail.gmail.com&gt;
Subject: Rounding error in OFStandard::atof
To: Debian Bug Tracking System &lt;submit@bugs.debian.org&gt;
Content-Type: text/plain; charset=&quot;UTF-8&quot;
Delivered-To: submit@bugs.debian.org

Source: dcmtk
Version: 3.6.7-8+b1

I believe I found an edge case in OFStandard::atof logic. Consider the
following ASCII string float &gt; 16 bytes (valid case for input such as
XML or JSON).

Here is what I see on my side Debian/stable (dcmtk 3.6.7):

$ ./fd
0x1.ccccccccccccdp+3
0x1.cccccccccccccp+3

This has an impact when using DcmFloatingPointDouble::putString (VR:FD).

Thanks !

ref code is

% cat ../fd.cxx
#include &quot;dcmtk/dcmdata/dcfilefo.h&quot;

int main() {
  const uint8_t bytes[] = {0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x2C, 0x40};
  std::string result;
  result = &quot;14.399999999999999&quot;;
  OFBool success;
  double d2 = OFStandard::atof(result.c_str(), &amp;success);
  std::cout &lt;&lt; std::hexfloat &lt;&lt; d2 &lt;&lt; std::endl;
  double d3 = std::stod(result);
  std::cout &lt;&lt; std::hexfloat &lt;&lt; d3 &lt;&lt; std::endl;

  return 0;
}
]