• VeganPizza69 Ⓥ@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    3 months ago

    The high level setter function should be made to handle both string and numeric values.

    If it contains “%” it’s a percentage value.

    If it’s a string without a “%” it’s an absolute value and needs to be normalized.

    If it’s a numeric value, it’s an absolute value.

    If it’s a numeric 100, it’s 100%.

    If it’s a subunitary numeric value, it’s a percentage.

    • sandbox@lemmy.world
      link
      fedilink
      arrow-up
      6
      ·
      3 months ago

      yeah I’m gonna go ahead and reject your PR, please change this function to accept a decimal value between 0 and 1

      • ChickenLadyLovesLife@lemmy.world
        link
        fedilink
        English
        arrow-up
        5
        ·
        3 months ago

        Ironically, the worst thing I ever saw a coworker do was to change a function that accepted an Integer value between 0 and 32767 to one that accepted a Float between 0.0 and 1.0. Perfectly sensible change except that it resulted in a 120 mph knuckleball fired a foot above a 10 year old kid’s head, followed by a fist fight between the client and my boss.

    • Skates@feddit.nl
      link
      fedilink
      arrow-up
      1
      ·
      3 months ago

      Oldman.setHealth(“dicktits”); //normalize pls

      Oldman.setHealth(“-100±1%”); //make percentage pls

      Oldman.setHealth(0.0); //it is subunitary, but undefined behavior - will it access the ‘numeric value’ overload, or the ‘subunitary numeric value’ overload?

      Don’t write your own code just yet.