• zqwzzle@lemmy.ca
    link
    fedilink
    English
    arrow-up
    14
    arrow-down
    1
    ·
    4 days ago

    If you’re doing any work with accounting, or writing test cases with floating point values.

      • wewbull@feddit.uk
        link
        fedilink
        English
        arrow-up
        37
        ·
        4 days ago

        Knowing not to use floating point with money is good use of that knowledge.

        • Womble@lemmy.world
          link
          fedilink
          English
          arrow-up
          3
          ·
          edit-2
          4 days ago

          Eh, if you use doubles and you add 0.000314 (just over 0.03 cents) to ten billion dollars you have an error of 1/10000 of a cent, and thats a deliberately perverse transaction. Its not ideal but its not the waiting disaster that using single precision is.

      • Saleh@feddit.org
        link
        fedilink
        English
        arrow-up
        2
        ·
        4 days ago

        How do you do money? Especially with stuff like some prices having three or four decimals

        • jmcs@discuss.tchncs.de
          link
          fedilink
          English
          arrow-up
          10
          ·
          4 days ago

          Instead of representing $1.102 as 1.102 your store it as 1012 (or whatever precision you need) and divide by 1000 only for displaying it.

          • Saleh@feddit.org
            link
            fedilink
            English
            arrow-up
            1
            ·
            4 days ago

            So if you handle different precisions you also need to store the precision/exponent explicitly for every value. Or would you sanitise this at input and throw an exception if someone wants more precision than the program is made for?

            • jmcs@discuss.tchncs.de
              link
              fedilink
              English
              arrow-up
              6
              ·
              4 days ago

              It depends on the requirements of your app and what programming language you use. Sometimes you can get away with using a fixed precision that you can assume everywhere, but most common programming languages will have some implementation of a decimal type with variable precision if needed, so you won’t need to implement it on your own outside of university exercises.

              • Saleh@feddit.org
                link
                fedilink
                English
                arrow-up
                2
                ·
                4 days ago

                Okay thank you. I was wondering because for stuff like buying electricity, gas or certain resources, parts etc. there is prices with higher precision in cents, but the precision would not be identical over all use cases in a large company.

            • wewbull@feddit.uk
              link
              fedilink
              English
              arrow-up
              5
              ·
              4 days ago

              No exponent, or at least a common fixed exponent. The technique is called “fixed point” as opposed to “floating point”. The rationale is always to have a known level of precision.

    • Cyborganism@lemmy.ca
      link
      fedilink
      English
      arrow-up
      1
      ·
      3 days ago

      No. I don’t have to remember that.

      I just have to remember the limits and how you can break the system. You don’t have to think about the representation.