Loading ...
Sorry, an error occurred while loading the content.

[DOCS] [798013] DEFINE TAG Doc improvement

Expand Messages
  • Eddy Anthony
    This is a request for clarification on how PCGen handles decimals. ... PCGen will return a whole number, discarding any decimal, is this right. Or is it
    Message 1 of 6 , Oct 31, 2003
    • 0 Attachment
      This is a request for clarification on how PCGen handles decimals.

      >From my own experience with formulas I found that after all the math is done
      PCGen will return a whole number, discarding any decimal, is this right. Or
      is it returning the correct answer with a decimal which is then ignored when
      applied to whatever its used for. (either way it amounts to the same thing)

      Is this kind of truncation going on in division during the working of any
      formulas (I would guess not as this seems to be what the .TRUNC tag is for)

      Speaking of .TRUNC I find the example confusing, I'm not a programmer so I'm
      not familiar with the concept.
      it reads:

      (TL/3.TRUNC)*2
      Truncation - would divide TL by 3, truncate and then multiply by 2.

      This is a circular definition, my guess is that .TRUNC simply drops the
      decimal in effect rounding down.
      Is there any case where it rounds up?
      Is there an operator to make a number round up, or round to the nearest
      integer?
      Is there even a need for that?

      -------------------------------------
      Text from tracker:
      Under operators you give the example for division of
      CL/2. What the docs don't say is after the division what
      happens to the decimal. In long complicated formulas
      that would be important.

      --
      Eddy
      PCGen Doc Gibbon

      Happy Halloween! Ook ooK!
    • God
      ... Isn t ((TL/3).TRUNC)*2 the right one? With your formula, I would say: truncate 3, divide TL by 3 multiplay by 2. Marc
      Message 2 of 6 , Oct 31, 2003
      • 0 Attachment
        > (TL/3.TRUNC)*2
        > Truncation - would divide TL by 3, truncate and then multiply by 2.


        Isn't ((TL/3).TRUNC)*2 the right one?
        With your formula, I would say: truncate 3, divide TL by 3 multiplay by 2.

        Marc
      • Eddy Anthony
        Bump - I now know better than to post on a Friday of a holiday and expect anyone to see it ;) -- Eddy PCGen Doc Gibbon
        Message 3 of 6 , Nov 3, 2003
        • 0 Attachment
          Bump - I now know better than to post on a Friday of a holiday and expect
          anyone to see it ;)
          --
          Eddy
          PCGen Doc Gibbon


          > This is a request for clarification on how PCGen handles decimals.
          >
          > From my own experience with formulas I found that after all the math is done
          > PCGen will return a whole number, discarding any decimal, is this right. Or
          > is it returning the correct answer with a decimal which is then ignored when
          > applied to whatever its used for. (either way it amounts to the same thing)
          >
          > Is this kind of truncation going on in division during the working of any
          > formulas (I would guess not as this seems to be what the .TRUNC tag is for)
          >
          > Speaking of .TRUNC I find the example confusing, I'm not a programmer so I'm
          > not familiar with the concept.
          > it reads:
          >
          > (TL/3.TRUNC)*2
          > Truncation - would divide TL by 3, truncate and then multiply by 2.
          >
          > This is a circular definition, my guess is that .TRUNC simply drops the
          > decimal in effect rounding down.
          > Is there any case where it rounds up?
          > Is there an operator to make a number round up, or round to the nearest
          > integer?
          > Is there even a need for that?
          >
          > -------------------------------------
          > Text from tracker:
          > Under operators you give the example for division of
          > CL/2. What the docs don't say is after the division what
          > happens to the decimal. In long complicated formulas
          > that would be important.
        • Barak
          ... I believe this is what happens. ... It is not truncated until all processing is done unless the .TRUNC tag is used in the formula. ... No, the above
          Message 4 of 6 , Nov 3, 2003
          • 0 Attachment
            > -----Original Message-----
            > From: Eddy Anthony [mailto:eddyba@...]

            >From my own experience with formulas I found that after all
            >the math is done PCGen will return a whole number, discarding any
            >decimal, is this right.

            I believe this is what happens.

            >Is this kind of truncation going on in division during the
            >working of any formulas (I would guess not as this seems to
            >be what the .TRUNC tag is for)

            It is not truncated until all processing is done unless the .TRUNC tag
            is used in the formula.

            >Speaking of .TRUNC I find the example confusing, I'm not a
            >programmer so I'm not familiar with the concept. it reads:

            >(TL/3.TRUNC)*2
            >Truncation - would divide TL by 3, truncate and then multiply by 2.

            No, the above example would truncate 3 (useless) divide TL by that and
            then multiply by 2 and then truncate that answer again.

            (TL/3).TRUNC*2 would divide TL by 3, then truncate, then multiply by 2
            and truncate again.

            >This is a circular definition, my guess is that .TRUNC simply drops
            >the decimal in effect rounding down. Is there any case
            >where it rounds up?

            It always truncates. No rounding up.

            >Is there an operator to make a number round up, or round to the
            >nearest integer?

            No.

            >Is there even a need for that?

            Not that I've come across.

            Barak
            ~ PCGen BoD
            ~ OS Silverback
          • Eddy Anthony
            Thanks Barak So to sum up- 1) To truncate is to drop the decimal or in other words round down. 2) To truncate an operation one should enclose it in perenthisis
            Message 5 of 6 , Nov 3, 2003
            • 0 Attachment
              Thanks Barak

              So to sum up-
              1) To truncate is to drop the decimal or in other words round down.

              2) To truncate an operation one should enclose it in perenthisis like so:
              (a+b).TRUNC (I'll be fixing the example in the docs).

              One last question, can you truncate a variable? or this even nessissary?

              For example DEFINE:FooDoo|CL/3
              Will FooDoo already be truncated as it is the result of a completed formula?

              Thanks for the info on the Total variable for the CONTAINS tag, I think I
              have enough to make some edits.

              --
              Eddy
              PCGen Doc Gibbon
            • Chris
              ... No problem. ... Correct. ... Correct again (as I understand it)... PCGen has some strange ways of determining precedence, but the above will guarantee that
              Message 6 of 6 , Nov 3, 2003
              • 0 Attachment
                > Thanks Barak

                No problem.

                > So to sum up-
                > 1) To truncate is to drop the decimal or in other words round down.

                Correct.

                > 2) To truncate an operation one should enclose it in perenthisis
                > like so:(a+b).TRUNC (I'll be fixing the example in the docs).

                Correct again (as I understand it)... PCGen has some strange ways of
                determining precedence, but the above will guarantee that the
                operation gets truncated and not just the last operand.

                > One last question, can you truncate a variable? or this even
                > nessissary?

                I think you could, but unless someone enters a decimal in the variable
                in a .lst file, I wouldn't see any need to.

                > For example DEFINE:FooDoo|CL/3
                > Will FooDoo already be truncated as it is the result of a completed
                > formula?

                Yes. That's how a lot of our SA tags that use variables work. To use
                your example:

                SA:Foo Doo Ability %/day|FooDoo

                This would show nothing until third level and then it would show Foo
                Doo Ability 1/day until sixth level where it would show Foo Doo
                Ability 2/day, etc.

                > Thanks for the info on the Total variable for the CONTAINS tag, I
                > think I have enough to make some edits.

                Good! it's nice to see the docs being fixed up. Thanks to you and
                Shane!

                Barak (at the local CC)
                ~ PCGen BoD
                ~ OS Silverback
              Your message has been successfully submitted and would be delivered to recipients shortly.