this post was submitted on 12 Mar 2024
129 points (94.5% liked)

Asklemmy

43891 readers
865 users here now

A loosely moderated place to ask open-ended questions

Search asklemmy 🔍

If your post meets the following criteria, it's welcome here!

  1. Open-ended question
  2. Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions. Assume best intent and be excellent to each other.
  3. Not regarding using or support for Lemmy: context, see the list of support communities and tools for finding communities below
  4. Not ad nauseam inducing: please make sure it is a question that would be new to most members
  5. An actual topic of discussion

Looking for support?

Looking for a community?

~Icon~ ~by~ ~@Double_[email protected]~

founded 5 years ago
MODERATORS
 

This article says that NASA uses 15 digits after the decimal point, which I'm counting as 16 in total, since that's how we count significant digits in scientific notation. If you round pi to 3, that's one significant digit, and if you round it to 1, that's zero digits.

I know that 22/7 is an extremely good approximation for pi, since it's written with 3 digits, but is accurate to almost 4 digits. Another good one is √10, which is accurate to a little over 2 digits.

I've heard that 'field engineers' used to use these approximations to save time when doing math by hand. But what field, exactly? Can anyone give examples of fields that use fewer than 16 digits? In the spirit of something like xkcd: Purity, could you rank different sciences by how many digits of pi they require?

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 12 points 8 months ago (2 children)

Software Engineering. 16 sigfigs across 64 bits

[–] [email protected] 6 points 8 months ago* (last edited 8 months ago) (1 children)

TIL a 64-bit float is accurate to 16 sigfigs.

Edit: actually, out of curiosity I decided to try and calculate it. I've very possibly done the wrong calculation, but what I did was log~2~(10^x^)=64, which works out to x≈19. Which isn't 16, but is very close, and when you consider the way the float actually works it wouldn't be too surprising that it was lose some information (the sign bit, for example, is immediately completely lost in this context).

[–] [email protected] 10 points 8 months ago* (last edited 8 months ago) (2 children)

A 64 bit IEEE float has 53 significant bits (the “mantissa” or “significand”), and log~10~(2^53^) is 15.9546.

[–] [email protected] 2 points 8 months ago (1 children)

Yeah I wasn't sure if it would be correct to throw out the exponent entirely or if it might end up contributing some amount to the final accuracy of the number. I hadn't spent a lot of time thinking about the problem.

[–] [email protected] 5 points 8 months ago

Yeah the exponent just allows you to represent lots of magnitudes, but it wouldn’t contribute to the accuracy because you basically have 1.xyz * 2^exponent^. So the xyz significand is the only part that counts for significant digits. Although I guess in some sense you are partially right, because the exponent exists it is assumed that the first bit is always one, since otherwise you would just adjust the exponent to the first one, so only 52 bits have to be stored.

[–] [email protected] 4 points 8 months ago (1 children)

Isn't it just 15 significant figures then?

[–] [email protected] 3 points 8 months ago

I would round up to 16.

[–] [email protected] 15 points 8 months ago (1 children)

Software Engineering too, I just use std::numbers::pi. Don't know how many digits it is offhand.

[–] [email protected] 4 points 8 months ago

I use M_PI and generally don't care unless the device acts funny.