Jump to content

Problems with Reverse Calculation


n7mafia

This topic is 1192 days old. Please don't post here. Open a new topic instead.

Recommended Posts

I have a calculation that goes like that, I input a number on "Base Imponibile" (say 100), it adds 15% (it gets me 115), it then calculates 4% to the previous result (115) and it gets me 4,60, I then add 2 and the total is 121,60 which is perfect.

And that's the part that works just fine. But I then want to make a reverse calculation, where I input the expected result of Total Calculation and tells me all the other values and here it's where things go awry.
 

Quote

 

Input Field of Total Calculation:
121,60

Calculation 2 removes 4% from the previous field => (wTotale-(wTotale*100/104))
4,68 (and here it is the first error, it is supposed to return 4,60)

Calculation 1 calculates 15% of the yet unknown "Base Imponibile" field => (wTotale-wCPA)-wBaseImponibile
16,74 (and here it ss the second error, it is supposed to return 15,00)

Calculation 3 it is supposed to calculate the last value "Base Imponibile" => wTotale-2-(wTotale-(wTotale*100/119))
100,18 (and here it is the third error, since it is supposed to return 100,00)

 

I'm attaching the initial calculation that works as a reference and the reverse calculation which doesn't work as an example. The "2" that gets subtracted in the reverse calculation is a fixed value of a small tax that I have to deduct (imposta di bollo).

I have a feeling that the reverse calculation goes crazy because of some unwanted rounding somewhere, but I am not to sure, so I seek the opinion of more calculation versed persons around.

ccc.png

ddd.png

Link to comment
Share on other sites

44 minutes ago, Mafia2020 said:

I then want to make a reverse calculation, where I input the expected result of Total Calculation and tells me all the other values

Consider:

Let ( [
a = Input - 2 ; 
b = a / 1.04 ;
c = a - b ; 
d = b / 1.15 ;
e = b - d
] ;
List ( a ; b ; c ; d ; e  )
)

With Input = 121.6, this returns:

119.6
115
4.6
100
15

 

  • Like 1
Link to comment
Share on other sites

2 hours ago, comment said:

Consider:




Let ( [
a = Input - 2 ; 
b = a / 1.04 ;
c = a - b ; 
d = b / 1.15 ;
e = b - d
] ;
List ( a ; b ; c ; d ; e  )
)

With Input = 121.6, this returns:




119.6
115
4.6
100
15

 

This returns the exact numbers I need to get and it seems a much more elegant solution than the faulty one I devised. Only, I was wondering, can the LIST part be delegated to single fields instead of having one big field with all the results? So for instance have a field that lists separately A, B, C, etc taking the input from the previous calculation with the LET function? Otherwhise instead of getting for instance

Quote

100,00
15,00
4,60


I get this
 

Quote

100154,60

Also, for some reasons I can tell FM to add the mandatory 2 decimals only for the last number while the first two results are 100 and 15 rather than 100,00 and 15,00

Edited by Mafia2020
Link to comment
Share on other sites

17 minutes ago, Mafia2020 said:

can the LIST part be delegated to single fields

Of course it can. The list was just a convenient way of showing how to calculate all parts at once. You can easily split this to individual fields - for example:

Let ( [
a = Input - 2 ; 
b = a / 1.04 
] ;
a - b
)

will return 4.6 in your example.

Edited by comment
Link to comment
Share on other sites

2 hours ago, comment said:

Of course it can. The list was just a convenient way of showing how to calculate all parts at once. You can easily split this to individual fields - for example:


Let ( [
a = Input - 2 ; 
b = a / 1.04 
] ;
a - b
)

will return 4.6 in your example.

Thank you for your patience and pointers, it now works exactly as I intended to.

Link to comment
Share on other sites

This topic is 1192 days old. Please don't post here. Open a new topic instead.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.