Groups | Search | Server Info | Login | Register


Groups > comp.lang.c > #397287

Re: Why is this happening?

Path csiph.com!eternal-september.org!feeder.eternal-september.org!nntp.eternal-september.org!.POSTED!not-for-mail
From Keith Thompson <Keith.S.Thompson+u@gmail.com>
Newsgroups comp.lang.c
Subject Re: Why is this happening?
Date Sun, 29 Mar 2026 16:22:10 -0700
Organization None to speak of
Lines 66
Message-ID <87ecl2uspp.fsf@example.invalid> (permalink)
References <10q5046$3ec1o$2@dont-email.me> <10q523v$3e865$1@dont-email.me> <n2n05bFmg8nU2@mid.individual.net> <10q7bug$7vod$1@dont-email.me> <87bjg8wrgl.fsf@example.invalid> <CfSxR.24256$eG1.15763@fx33.iad> <20260329115057.00003a47@yahoo.com> <87qzp2uzjc.fsf@example.invalid> <20260330020523.0000330f@yahoo.com>
MIME-Version 1.0
Content-Type text/plain; charset=utf-8
Content-Transfer-Encoding 8bit
Injection-Date Sun, 29 Mar 2026 23:22:11 +0000 (UTC)
Injection-Info dont-email.me; posting-host="1ddb92ea07dcf10ad5bdf45e81a7e5f2"; logging-data="2102851"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19qg2j5aSgTFVCGegQieQd4"
User-Agent Gnus/5.13 (Gnus v5.13)
Cancel-Lock sha1:zJeu0kEdvNnODzrtd+ylmE+PWHY= sha1:mnzcf5vmoK8rmIQi+5xb9fU/FBI=
Xref csiph.com comp.lang.c:397287

Show key headers only | View raw


Michael S <already5chosen@yahoo.com> writes:
> On Sun, 29 Mar 2026 13:54:47 -0700
> Keith Thompson <Keith.S.Thompson+u@gmail.com> wrote:
>> Michael S <already5chosen@yahoo.com> writes:
>> > On Sat, 28 Mar 2026 15:14:42 GMT
>> > scott@slp53.sl.home (Scott Lurndal) wrote:
>> >  
>> >> Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:  
>> >> >Lawrence Dג€™Oliveiro <ldo@nz.invalid> writes:    
>> >> >> On Fri, 27 Mar 2026 10:15:23 +0100, Josef M_¶llers wrote:
>> >> >>    
>> >> >>>      diffns += 1000000000UL;    
>> >> >>
>> >> >> Can you write
>> >> >>
>> >> >>       diffns += 1_000_000_000UL;
>> >> >>
>> >> >> yet?    
>> >> >
>> >> >Not in C.  C23 introduces the apostrophe as a digit separator,
>> >> >copied from C++:
>> >> >
>> >> >      diffns += 1'000'000'000UL;    
>> >> 
>> >> Or diffns += 1000ul * 1000ul * 1000ul;
>> >> 
>> >> or diffns += 1 * NS_PER_SEC;
>> >> 
>> >> with
>> >> #define NS_PER_SEC ((1000ul * 1000ul * 1000ul))  
>> >
>> > Why not (int)1e9 ?  
>> [...]
>> 
>> Because int is not guaranteed to be wider than 16 bits (though if
>> you're already relying on Windows or POSIX, you can assume it's at
>> least 32 bits).  The original expression was of type unsigned long,
>> so (unsigned long)1e9 would be more nearly correct.
>> 
>> And because it's a floating-point to integer conversion in a
>> context that doesn't need floating-point.  I'm not sure whether
>> (unsigned long)1e9 is actually guaranteed to yield 1000000000 rather
>> than 999999999.  Maybe it is, but I don't want to waste brain cells
>> proving it.
>
> IEEE binary64 has precise representations for all powers of 10 from 1e0
> to 1e22. I.e it covers all powers of 10 that fit within 64-bit unsigned
> integer with 3 values to spare.

Sure, but the C standard doesn't guarantee IEEE-compatible
floating-point.

I'd be very surprised if any C implementation had (unsigned long)1e9
unequal to 1000000000.  If I ran across one, I'd seriously consider
submitting a bug report.  I'd have to study the C standard's
floating-point requirements to be sure (I haven't done that yet).

My point is that writing (unsigned long)1e9 rather than 1000000000 or
(1000ul * 1000ul * 1000ul) introduces complications I'd rather avoid.
It *might* be perfectly safe, but I'm uncomfortable relying on it.
If nothing else, if the program misbehaves, it's one less thing to
worry about while tracking down the bug.

-- 
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */

Back to comp.lang.c | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Why is this happening? DFS <nospam@dfs.com> - 2026-03-27 00:12 -0400
  Re: Why is this happening? Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-03-27 05:46 +0100
    Re: Why is this happening? Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-03-27 06:01 +0100
      Re: Why is this happening? DFS <nospam@dfs.com> - 2026-03-27 02:31 -0400
    Re: Why is this happening? Josef Möllers <josef@invalid.invalid> - 2026-03-27 10:15 +0100
      Re: Why is this happening? scott@slp53.sl.home (Scott Lurndal) - 2026-03-27 16:02 +0000
        Re: Why is this happening? Josef Möllers <josef@invalid.invalid> - 2026-03-28 21:58 +0100
          Re: Why is this happening? Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-03-29 14:30 +0200
            Re: Why is this happening? scott@slp53.sl.home (Scott Lurndal) - 2026-03-29 18:56 +0000
              Re: Why is this happening? Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-03-30 02:00 +0200
            Re: Why is this happening? Mike Terry <news.dead.person.stones@darjeeling.plus.com> - 2026-03-30 00:41 +0100
              Re: Why is this happening? Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-03-30 09:25 +0200
                Re: Why is this happening? Michael S <already5chosen@yahoo.com> - 2026-03-30 11:23 +0300
                Re: Why is this happening? Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-03-30 11:16 +0200
                Re: Why is this happening? Michael S <already5chosen@yahoo.com> - 2026-03-30 13:06 +0300
      Re: Why is this happening? Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-03-28 01:46 +0000
        Re: Why is this happening? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-03-27 20:41 -0700
          Re: Why is this happening? Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-03-28 05:17 +0100
            Re: Why is this happening? David Brown <david.brown@hesbynett.no> - 2026-03-28 10:09 +0100
              Re: Why is this happening? Bart <bc@freeuk.com> - 2026-03-28 11:33 +0000
                Re: Why is this happening? David Brown <david.brown@hesbynett.no> - 2026-03-28 16:35 +0100
                Re: Why is this happening? Richard Harnden <richard.nospam@gmail.invalid> - 2026-03-28 16:56 +0000
                Re: Why is this happening? Richard Harnden <richard.nospam@gmail.invalid> - 2026-03-28 16:58 +0000
                Re: Why is this happening? James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-03-28 19:24 -0400
                Re: Why is this happening? David Brown <david.brown@hesbynett.no> - 2026-03-29 11:33 +0200
                Re: Why is this happening? Richard Harnden <richard.nospam@gmail.invalid> - 2026-03-29 16:30 +0100
                Re: Why is this happening? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-03-29 10:37 -0700
                Re: Why is this happening? David Brown <david.brown@hesbynett.no> - 2026-03-31 16:20 +0200
                Re: Why is this happening? Richard Harnden <richard.nospam@gmail.invalid> - 2026-03-31 17:19 +0100
                Re: Why is this happening? "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-03-29 13:19 -0700
                Re: Why is this happening? "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-03-29 13:26 -0700
                Re: Why is this happening? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-03-29 14:14 -0700
                Re: Why is this happening? James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-03-29 20:47 -0400
                Re: Why is this happening? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-03-29 13:57 -0700
                Re: Why is this happening? David Brown <david.brown@hesbynett.no> - 2026-03-31 16:26 +0200
          Re: Why is this happening? scott@slp53.sl.home (Scott Lurndal) - 2026-03-28 15:14 +0000
            Re: Why is this happening? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-03-28 10:18 -0700
              Re: Why is this happening? scott@slp53.sl.home (Scott Lurndal) - 2026-03-29 18:50 +0000
            Re: Why is this happening? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-03-28 19:12 -0700
              Re: Why is this happening? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-03-28 22:31 -0700
                Re: Why is this happening? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-04-06 12:11 -0700
                Re: Why is this happening? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-04-06 14:20 -0700
                Re: Why is this happening? Michael S <already5chosen@yahoo.com> - 2026-04-07 02:05 +0300
                Re: Why is this happening? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-04-06 17:42 -0700
              Re: Why is this happening? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-03-29 14:43 -0700
            Re: Why is this happening? Michael S <already5chosen@yahoo.com> - 2026-03-29 11:50 +0300
              Re: Why is this happening? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-03-29 13:54 -0700
                Re: Why is this happening? Michael S <already5chosen@yahoo.com> - 2026-03-30 02:05 +0300
                Re: Why is this happening? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-03-29 16:22 -0700
                Re: Why is this happening? Michael S <already5chosen@yahoo.com> - 2026-03-30 10:57 +0300
                Re: Why is this happening? James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-03-30 20:37 -0400
                Re: Why is this happening? Michael S <already5chosen@yahoo.com> - 2026-03-31 11:48 +0300
                Re: Why is this happening? James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-03-31 10:51 -0400
                Re: Why is this happening? candycanearter07 <candycanearter07@candycanearter07.nomail.afraid> - 2026-03-31 19:00 +0000
        Re: Why is this happening? Tristan Wibberley <tristan.wibberley+netnews2@alumni.manchester.ac.uk> - 2026-04-03 02:41 +0100

csiph-web