Forum Discussion

CAIGuySeanF's avatar
CAIGuySeanF
Contributor
2 years ago

Unable to execute formula for member "xxx'. Value was either too large or too small for a Decimal.

Hello,

I'm attempting to leverage the UD8 Compound Annual Growth Rate (CAGR) business rule as a dynamic calculation.

 

The formula works great on most intersections, but I keep getting this error message on certain intersections:

--> Unable to execute formula for member 'xxx'. Value was either too large or too small for a Decimal. 

 

Does anyone know what is causing this our how I can overcome?  Even a single intersection error wrecks my cubeview presentation as you can see with the attached image.

 

I'm able to recreate the math in excel and the result doesn't seem unwieldy, so I'm not sure how to resolve. 

 

Thanks,

SeanUD8 CAGR Business RuleError Message being thrownMath - highlighting intersection with error via a QuickView

 

  • JackLacava's avatar
    JackLacava
    Honored Contributor

    From documents, I believe Decimal values can exist between +79,228,162,514,264,337,593,543,950,335 and -79,228,162,514,264,337,593,543,950,335. If your number falls outside this range, at any point in the calculation, you'll get that error. You can probably break that range even if the number is technically inside the range but having a large amount of decimals.

    • CAIGuySeanF's avatar
      CAIGuySeanF
      Contributor

      I assumed it could be range driven, but in the example above, I don't ever come close to falling outside this range?

      • DanielWillis's avatar
        DanielWillis
        Valued Contributor

        I think like Jack hinted, it is the amount/size of numbers after the decimal place (i'm sure there is a better term for that.. precision?).

        CellAmount accepts a decimal so falls over when you try to send the value there.

        I wonder if you could (if its acceptable) store the value in a double and then round it and send it to CellAmount?

        So

        Dim DoubleCellAmount = CAGRCalc.Cellamount ^ ExponCAGR - 1

        CAGRCalc.CellAmount = Math.Round(DoubleCellAmount,X)

        where X is some value that is acceptable to you

  • Hey Daniel, 

    Thanks for the suggestion.  Error message remains, but the values previously returning are being rounded as you would expect.

     

    Sean