Groups | Search | Server Info | Login | Register
Groups > comp.lang.c > #397287
| 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 | Next — Previous in thread | Next in thread | Find similar
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