Qlik Community

QlikView Scripting

Discussion Board for collaboration on QlikView Scripting.

Not applicable

Numbers don't subtract correctly...

Hello,

I'm having a little problem substracting numbers... When I take them seperately the numbers

work.

Meaning in section One the result is 28,01 which is correct.

In section Two the result is 25,68 which is correct.

But

When I subtract section One from section Two

I get the incorrect result of 2,32

but it should be 2,33 ( 28,01 - 25,68 = 2,33 )

Any idea what I'm I doing wrong here ?

Eric

=

Money(

// Result 28,01

(

Money(

if ( [Type de donnée] = 'PARACTION',   if (avg({$<[Type de donnée] = {'REEL'}>} Total [Nombre d'actions]) = 0, 0,

   (sum({1<[%CLE_Type_Transaction_ID] -= {'EA','EB'},[Nom entité]= P([Nom entité]) ,[Année-période financière]=P([Année-période financière]),

   %CR001R1 = {'Actif net'}>}[Montant cumulé aad]*-1)

   -

   sum({1<[%CLE_Type_Transaction_ID] -= {'EA','EB'},[Nom entité]= P([Nom entité]) ,

   [Année-période financière]=P([Année-période financière]), [Poste budgétaire] = {'10000009993004040'}>}[Montant cumulé aad]*-1) )

   / avg({$<[Type de donnée] = {'REEL'}>} Total [Nombre d'actions])))

, '# ##0,##;(# ##0,##)')

)

-

(

Money(

// Result 25,68

if ( [Type de donnée] = 'PARACTION',  

if (avg({$<[Type de donnée] = {'REEL'}, [Année-période financière]=[Année-période financière comp 1]>} Total [Nombre d'actions]) = 0, 0,

   (sum({1<[%CLE_Type_Transaction_ID] -= {'EA','EB'},[Nom entité]= P([Nom entité]) ,[Année-période financière]=P([Année-période financière comp 1]),

   %CR001R1 = {'Actif net'}>}[Montant cumulé aad]*-1)

   -

   sum({1<[%CLE_Type_Transaction_ID] -= {'EA','EB'},[Nom entité]= P([Nom entité]) ,[Année-période financière]=P([Année-période financière comp 1]),

   [Poste budgétaire] = {'10000009993004040'}>}[Montant cumulé aad]*-1) )

   /avg({$<[Type de donnée] = {'REEL'}, [Année-période financière]=[Année-période financière comp 1]>} Total [Nombre d'actions])))

, '# ##0,##;(# ##0,##)')

)

, '# ##0,##;(# ##0,##)')

// Result 2,32

// Should be 2,33 ( 28,01 - 25,68 = 2,33 )

1 Solution

Accepted Solutions

Re: Numbers don't subtract correctly...

The money function only formats numbers, but doesn't round the underlying values. So what you're seeing is a result of not rounding values and then subtracting the non-rounded values. The solution: Use the round() function on the intermediate results.


talk is cheap, supply exceeds demand
2 Replies

Re: Numbers don't subtract correctly...

The money function only formats numbers, but doesn't round the underlying values. So what you're seeing is a result of not rounding values and then subtracting the non-rounded values. The solution: Use the round() function on the intermediate results.


talk is cheap, supply exceeds demand
Not applicable

Re: Numbers don't subtract correctly...

Yes, rounding my intermediate results was the solution. Thank you Gysbert !!! Have a great 2014.

It's so easy when you know...

Changes are in bold

=

Money(

// Result 28,01

(

Money(

round(

if ( [Type de donnée] = 'PARACTION',   if (avg({$<[Type de donnée] = {'REEL'}>} Total [Nombre d'actions]) = 0, 0,

   (sum({1<[%CLE_Type_Transaction_ID] -= {'EA','EB'},[Nom entité]= P([Nom entité]) ,[Année-période financière]=P([Année-période financière]),

   %CR001R1 = {'Actif net'}>}[Montant cumulé aad]*-1)

   -

   sum({1<[%CLE_Type_Transaction_ID] -= {'EA','EB'},[Nom entité]= P([Nom entité]) ,

   [Année-période financière]=P([Année-période financière]), [Poste budgétaire] = {'10000009993004040'}>}[Montant cumulé aad]*-1) )

   / avg({$<[Type de donnée] = {'REEL'}>} Total [Nombre d'actions])))

, 0.01 )  

, '# ##0,##;(# ##0,##)')

)

-

(

Money(

round(

// Result 25,68

if ( [Type de donnée] = 'PARACTION',  

if (avg({$<[Type de donnée] = {'REEL'}, [Année-période financière]=[Année-période financière comp 1]>} Total [Nombre d'actions]) = 0, 0,

   (sum({1<[%CLE_Type_Transaction_ID] -= {'EA','EB'},[Nom entité]= P([Nom entité]) ,[Année-période financière]=P([Année-période financière comp 1]),

   %CR001R1 = {'Actif net'}>}[Montant cumulé aad]*-1)

   -

   sum({1<[%CLE_Type_Transaction_ID] -= {'EA','EB'},[Nom entité]= P([Nom entité]) ,[Année-période financière]=P([Année-période financière comp 1]),

   [Poste budgétaire] = {'10000009993004040'}>}[Montant cumulé aad]*-1) )

   /avg({$<[Type de donnée] = {'REEL'}, [Année-période financière]=[Année-période financière comp 1]>} Total [Nombre d'actions])))

, 0.01 )

, '# ##0,##;(# ##0,##)')

)

, '# ##0,##;(# ##0,##)')

// Result 2,32

// Should be 2,33 ( 28,01 - 25,68 = 2,33 )

// Now has the correct result of 2.33 ! Thanks Gysbert

Community Browser