• 257m@sh.itjust.works
    link
    fedilink
    arrow-up
    1
    ·
    1 year ago

    Whats the alternative a macro? An inline function is perfectly fine for checking if a nunber is even. Compiler will probably optimize it to a single and instruction.

    • homura1650@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      1 year ago

      No. The alternative is to not use a float. Testing if a float is even simply does not make sense.

      Even testing two floats for equality rarely makes sense.

      What is the correct output of isEven((.2 + .4) ×10)

      Hint: (.2 + .4) x 10 != 6

      • 257m@sh.itjust.works
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        1 year ago

        It does if it dosen’t have a decimal. If it has decimal then it automatically isn’t and the function will return false. Are you talking about cases like 0.1 + 0.2 equaling 0.3000000004 because that is just due to the nature of floats and there is nothing a function can do other than use larger floats for more accuracy.