The OneStream Community is temporarily frozen until June 29th due to the ongoing maintenance. Please read the blog post here to learn more.
Forum Discussion
AndreaF
2 years agoContributor III
Using a variable in the calculate string formula
Hi, I am in a custom business rule. I have a calculate formula like the following one, which works fine: api.Data.Calculate("A#Sales1 = A#Sales2 + 50”) Now let say I want to declare a varia...
- 2 years ago
The safest approach is this:
Api.Data.FormulaVariables.SetDecimalVariable("Growth", 50)
API.data.Calculate("A#Sales1 = A#Sales2 + $Growth”)
This approach avoids possible issues with converting numbers to string - when the user executing it has a different Culture, or when decimals get truncated (hence losing precision). There is a blog post discussing it as part of internationalising an application.
RobbSalzmann
2 years agoValued Contributor II
This is a good discussion. it highlights some important things in computer science in general.
JackLacava Your question "WriteLine converts to String though, doesn't it...? So if there is truncation, you're just showing it being done twice." got me thinking...
The following code demonstrates the parsing of an interpolated decimal over a million accumulating iterations of a calculation and compares it to the same million iterations of direct decimal calculation. I think this qualifies interpolation as not changing precision.
** The key to this test is the comparison of the results is made by the code, before being written to the screen as String values.
Related Content
- 2 years ago
- 3 years ago