Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #92659

Re: Float Vs Double

From David Brown <david.brown@hesbynett.no>
Newsgroups comp.lang.c
Subject Re: Float Vs Double
Date 2016-08-23 21:42 +0200
Organization A noiseless patient Spider
Message-ID <npi8vt$2f6$1@dont-email.me> (permalink)
References (18 earlier) <nphepg$1dn$3@jstuckle.eternal-september.org> <nphhqp$db1$1@dont-email.me> <nphjp1$k66$1@jstuckle.eternal-september.org> <nphn7v$1dh$1@dont-email.me> <nphr30$f0k$1@jstuckle.eternal-september.org>

Show all headers | View raw


On 23/08/16 17:45, Jerry Stuckle wrote:
> On 8/23/2016 10:39 AM, David Brown wrote:
>> On 23/08/16 15:40, Jerry Stuckle wrote:
<snip>
>>> No, financial calculations are not an example.  For instance, banks
>>> generally go at least six decimal places for monetary calculations, but
>>> may go four to eight for percentage calculations (depending on how often
>>> interest is calculated).  And, of course, account transfers are only two
>>> decimal places.
>>>
>>> The are many different numbers of decimal places used in financial
>>> calculations.
>>
>> That sounds like a perfect example.  At no point did I say that the
>> fixed number of decimal places was the same in every use-case.
>>
>> And a single fixed value of 18 decimal places would do a far job of
>> covering all the situations you describe.
>>
>
> Which would also waste all kinds of space.  For instance - when
> transferring money from one account to another, only two decimal places
> are required.  Now this sounds like a small amount - but when you're
> talking millions of transactions a day, it quickly adds up.
>

It quickly adds up to ... a small amount.  Wasting 8 bytes per 
transaction, multiplied by a few million, gives a few 10's of MB 
overhead per day.  Let's say 30 MB to be generous to you.  If that 
breaks the banks computer system, then it deserves to be broken.

> This is especially true when you're talking interbank transfers, where
> tapes are cut and sent to the Federal Reserve nightly.  Adding four
> extra decimal places greatly increases the amount of time required to
> process those tapes (and yes, tapes are still used for a several very
> valid reasons).
>

A modern LTO-7 tape is 6 TB and runs at 300 MB/s (raw).  Let's assume 
the bank is using tried-and-true technology rather than the latest and 
greatest.  LTO-1 from 2000 is 100 GB at 20 MB/s.  So this extra space 
costs 1.5 seconds of extra time - hardly a "great increase".


>>>
>>>> The exception would be in mathematical calculations where you want
>>>> arbitrary precision in your decimal calculations.
>>>>
>>>
>>> More the rule than the exception.
>>>
>>>> And in either case, I can't see why storing 9 digits in 32-bit chunks is
>>>> going to be much more complicated than storing 1 or 2 digits in 8-bit
>>>> chunks (BCD, packed or unpacked).  It will certainly be more efficient
>>>> for calculations.  18 digits in 64-bit chunks is going to be even better
>>>> on modern cpus.
>>>>
>>>
>>> Then you show how to subtract 123.456 from 789012.345678 using 18 digits
>>> in 64 bit chunks.  I'd love to see you do it.
>>>
>>
>> typedef struct {
>>    int64_t whole;
>>    int64_t part;
>> } bignum;
>>
>> bignum subtractBigNum(bignum a, bignum b) {
>>    bignum c;
>>    c.whole = a.whole - b.whole;
>>    c.part = a.part - b.part;
>>    if (c.part < 0) {
>>      c.part += 1000000000000000000;
>>      c.whole -= 1;
>>    }
>>    if (c.part > 1000000000000000000) {
>>      c.part -= 1000000000000000000;
>>      c.whole += 1;
>>    }
>>    return c;
>> }
>>
>> bignum test(void) {
>>    bignum a = { 789012, 345678 * 1000000000000ll };
>>    bignum b = { 123, 456 * 1000000000000000ll };
>>    return subtractBigNum(a, b);
>> }
>>
>> It's a little off-topic, but this sounds like a marvellous opportunity
>> for a C++ class and user-defined literals.
>>
>
> Which only works if you have 64 bit integers - something relatively new
> in computing, and only available on a limited number of platforms.

Yes, 64-bit cpus have only existing since 1975, and were not popular on 
servers or serious computers until about 20 years ago.  Quite new, 
really.  Of course, you don't need a 64-bit cpu in order to have 64-bit 
integers - they are fully supported on some 8-bit systems.  (Of course, 
you only get speed benefits from using 64-bit chunks if you have a 
64-bit cpu.)

As Ben noted, multiplication would be awkward if the compiler doesn't 
have good support for a 64 x 64 -> 128 bit multiplication, so on older 
or more limited systems you might be better with 9 digits in 32-bit 
words if you have a lot of multiplication to do.


> And
> while it will work in the specific case, it fails miserably for more
> generic code.

What on earth do you mean?  Sometimes I think you just open your mouth 
and let your belly rumble, as the saying goes.

>
> But that's what I would expect from you.  You solve the specific problem
> rather than the general nature of the problem.
>
>>> But you've already shown you have no clue, so I won't hold my breath.
>>>
>>
>
> I'm still not holding my breath.
>

Oh, go on - I bet you can hold it if you try.

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


Thread

Float Vs Double Real Troll <real.troll@trolls.com> - 2016-08-07 17:59 -0400
  Re: Float Vs Double Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-07 23:38 +0100
  Re: Float Vs Double Real Troll <real.troll@trolls.com> - 2016-08-07 18:55 -0400
    Re: Float Vs Double jameskuyper@verizon.net - 2016-08-07 16:43 -0700
      Re: Float Vs Double Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-08-07 19:36 -0700
        Re: Float Vs Double Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-08 04:05 +0100
          Re: Float Vs Double Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-08-07 20:41 -0700
            Re: Float Vs Double Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-08 11:41 +0100
              Re: Float Vs Double Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-08-08 04:23 -0700
                Re: Float Vs Double Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-08 23:45 +0100
                Re: Float Vs Double Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-08-10 03:26 -0700
                Re: Float Vs Double Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-11 01:00 +0100
        Re: Float Vs Double jameskuyper@verizon.net - 2016-08-08 08:52 -0700
          Re: Float Vs Double James Kuyper <jameskuyper@verizon.net> - 2016-08-08 11:58 -0400
          Re: Float Vs Double Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-08-08 10:06 -0700
      Re: Float Vs Double "James R. Kuyper" <jameskuyper@verizon.net> - 2016-08-08 19:46 -0400
    Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-07 21:29 -0400
      Re: Float Vs Double jacobnavia <jacob@jacob.remcomp.fr> - 2016-08-08 14:04 +0200
        Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-08 09:00 -0400
          Re: Float Vs Double jacobnavia <jacob@jacob.remcomp.fr> - 2016-08-08 18:43 +0200
            Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-08 14:34 -0400
              Re: Float Vs Double Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-08-08 12:00 -0700
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-08 16:42 -0400
                Re: Float Vs Double Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-08-08 14:04 -0700
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-09 08:48 -0400
                Re: Float Vs Double Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-08-10 03:22 -0700
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-21 18:31 -0400
                Re: Float Vs Double supercat@casperkitty.com - 2016-08-22 08:39 -0700
                Re: Float Vs Double Jean-Marc Bourguet <jm@bourguet.org> - 2016-08-22 19:29 +0200
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-22 19:24 -0400
                Re: Float Vs Double Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-23 01:01 +0100
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-22 21:58 -0400
                Re: Float Vs Double David Brown <david.brown@hesbynett.no> - 2016-08-23 09:38 +0200
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-23 08:15 -0400
                Re: Float Vs Double David Brown <david.brown@hesbynett.no> - 2016-08-23 15:07 +0200
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-23 09:40 -0400
                Re: Float Vs Double Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-23 15:14 +0100
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-23 10:38 -0400
                Re: Float Vs Double Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-23 17:18 +0100
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-23 15:47 -0400
                Re: Float Vs Double David Brown <david.brown@hesbynett.no> - 2016-08-23 16:39 +0200
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-23 11:45 -0400
                Re: Float Vs Double David Brown <david.brown@hesbynett.no> - 2016-08-23 21:42 +0200
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-23 15:52 -0400
                Re: Float Vs Double Ian Collins <ian-news@hotmail.com> - 2016-08-24 08:36 +1200
                Re: Float Vs Double David Brown <david.brown@hesbynett.no> - 2016-08-24 09:39 +0200
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-24 11:31 -0400
                Re: Float Vs Double Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-23 10:48 +0100
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-23 08:17 -0400
                Re: Float Vs Double Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-08-23 06:01 -0700
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-23 09:44 -0400
                Re: Float Vs Double Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-08-23 07:19 -0700
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-23 10:39 -0400
                Re: Float Vs Double Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-08-23 08:18 -0700
                Re: Float Vs Double Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-23 14:47 +0100
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-23 10:40 -0400
                Re: Float Vs Double Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-24 01:31 +0100
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-23 20:53 -0400
                Re: Float Vs Double supercat@casperkitty.com - 2016-08-23 23:20 -0700
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-24 11:32 -0400
                Re: Float Vs Double David Brown <david.brown@hesbynett.no> - 2016-08-24 09:46 +0200
                Re: Float Vs Double Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-24 14:53 +0100
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-24 11:35 -0400
                Re: Float Vs Double Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-08-24 08:57 -0700
                Re: Float Vs Double Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-24 17:36 +0100
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-24 12:50 -0400
                Re: Float Vs Double Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-24 17:26 +0100
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-24 12:51 -0400
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-24 11:33 -0400
                Re: Float Vs Double Robert Wessel <robertwessel2@yahoo.com> - 2016-08-28 02:33 -0500
                Re: Float Vs Double antispam@math.uni.wroc.pl - 2016-08-31 22:36 +0000
                Re: Float Vs Double supercat@casperkitty.com - 2016-08-31 15:51 -0700
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-31 22:42 -0400
                Re: Float Vs Double supercat@casperkitty.com - 2016-09-01 08:32 -0700
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-09-01 15:00 -0400
                Re: Float Vs Double supercat@casperkitty.com - 2016-09-01 13:45 -0700
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-09-01 20:50 -0400
                Re: Float Vs Double supercat@casperkitty.com - 2016-09-02 08:11 -0700
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-09-02 12:25 -0400
                Re: Float Vs Double David Brown <david.brown@hesbynett.no> - 2016-09-02 20:42 +0200
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-09-02 16:25 -0400
                Re: Float Vs Double Jean-Marc Bourguet <jm@bourguet.org> - 2016-09-03 08:43 +0200
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-09-03 10:48 -0400
                Re: Float Vs Double Jean-Marc Bourguet <jm@bourguet.org> - 2016-09-03 19:43 +0200
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-09-03 18:16 -0400
                Re: Float Vs Double asetofsymbols@gmail.com - 2016-09-08 11:18 -0700
                Re: Float Vs Double Robert Wessel <robertwessel2@yahoo.com> - 2016-09-07 19:59 -0500
                Re: Float Vs Double supercat@casperkitty.com - 2016-09-08 08:13 -0700
                Re: Float Vs Double Robert Wessel <robertwessel2@yahoo.com> - 2016-09-08 19:34 -0500
                Re: Float Vs Double supercat@casperkitty.com - 2016-09-09 07:50 -0700
                Re: Float Vs Double Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-09-02 23:40 -0700
                Re: Float Vs Double Jean-Marc Bourguet <jm@bourguet.org> - 2016-09-03 09:06 +0200
                Re: Float Vs Double Jerry Stuckle <jstucklex@attglobal.net> - 2016-09-03 10:52 -0400
                Re: Float Vs Double Rosario19 <Ros@invalid.invalid> - 2016-08-24 08:57 +0200
                Re: Float Vs Double Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-08-24 01:04 -0700
    Re: Float Vs Double Ike Naar <ike@iceland.freeshell.org> - 2016-08-08 06:44 +0000
      Re: Float Vs Double Keith Thompson <kst-u@mib.org> - 2016-08-08 00:16 -0700
        Re: Float Vs Double Richard Damon <Richard@Damon-Family.org> - 2016-08-08 23:29 -0400
    Re: Float Vs Double jacobnavia <jacob@jacob.remcomp.fr> - 2016-08-08 14:03 +0200
      Re: Float Vs Double "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-08-08 05:14 -0700
        Re: Float Vs Double BGB <cr88192@hotmail.com> - 2016-08-09 19:53 -0500
  Re: Float Vs Double "James R. Kuyper" <jameskuyper@verizon.net> - 2016-08-07 18:47 -0400
  Float Vs Double "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-08-07 17:04 -0700
    Re: Float Vs Double "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-08-08 05:49 -0700
    Re: Float Vs Double Nobody <nobody@nowhere.invalid> - 2016-08-10 03:26 +0100
      Re: Float Vs Double "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-08-09 20:15 -0700
        Re: Float Vs Double "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-08-10 06:07 -0700
      Re: Float Vs Double "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-08-10 06:13 -0700
        Re: Float Vs Double David Brown <david.brown@hesbynett.no> - 2016-08-10 16:43 +0200
          Re: Float Vs Double "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-08-10 07:56 -0700
          Re: Float Vs Double supercat@casperkitty.com - 2016-08-10 08:39 -0700
            Re: Float Vs Double Keith Thompson <kst-u@mib.org> - 2016-08-10 09:56 -0700
              Re: Float Vs Double Keith Thompson <kst-u@mib.org> - 2016-08-10 10:04 -0700
                Re: Float Vs Double Tim Rentsch <txr@alumni.caltech.edu> - 2016-08-11 07:08 -0700
                Re: Float Vs Double "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-08-11 07:15 -0700
                Re: Float Vs Double Tim Rentsch <txr@alumni.caltech.edu> - 2016-08-12 08:11 -0700
              Re: Float Vs Double jacobnavia <jacob@jacob.remcomp.fr> - 2016-08-10 20:38 +0200
                Re: Float Vs Double Keith Thompson <kst-u@mib.org> - 2016-08-10 12:20 -0700
                Re: Float Vs Double supercat@casperkitty.com - 2016-08-10 12:17 -0700
                Re: Float Vs Double jacobnavia <jacob@jacob.remcomp.fr> - 2016-08-10 21:48 +0200
                Re: Float Vs Double Keith Thompson <kst-u@mib.org> - 2016-08-10 13:40 -0700
              Re: Float Vs Double Ian Collins <ian-news@hotmail.com> - 2016-08-12 08:01 +1200
          Re: Float Vs Double BGB <cr88192@hotmail.com> - 2016-08-10 15:00 -0500

csiph-web