Jump to content
  • 0

Wie jat hier af en toe een Eurocent?


AvD

Question

Posted

Er zijn een aantal formules in omloop om een (numeriek) getal in een tekstveld te zetten zodat het netjes met twee decimalen verschijnt en ook met een "voorloopnul" voor waarden kleiner dan 1.

 

Stel dat we het getal invoeren in een number field dat we Bedrag genoemd hebben.

De eerste formule is deze (ze is hier al enkele keren aan bod gekomen):

 

Int(Round(Bedrag;2)) & "," & Right("00" & NumToText(Round(Bedrag;2) * 100); 2)

 

En dit is de tweede formule:

 

Int(Bedrag) & "," & Truncate(Mod(Bedrag; 1) * 100;0)

 

De eerste geeft steeds een goed resultaat. De tweede meestal ook, maar soms komt er een vreemde afwijking:

 

5,5 geeft 5,50

5,7 geeft 5,70

maar 5,6 geeft 5,59

 

Dezelfde afwijking komt voor bij 5,30: dat geeft 5,29.

 

Waarom gaat FileMaker hier telkens met één Eurocent lopen? en... waar gaat al dat geld naartoe? :evil::evil:

Alle gekheid op een stokje: is dit een afwijking wegens binair rekenen? is dit een processor-fout zoals vroeger bij bepaalde AMD-reeksen is voorgevallen?

Demo decimale getallen.fp5

1 answer to this question

Recommended Posts

  • 0
Posted

Inderdaad vreemd. Het ligt in elk geval niet aan het tekstveld. Want bij omzetting naar numeriek heb je het ook. Blijkbaar gaat de truncate-functie de mist in, want de formule

Int(Bedrag) & "," & ( Mod(Bedrag; 1) * 100)

 

levert dan weer wel een 5,60 op.

 

Dus de vraag is eigenlijk waarom Truncate(60; 0) = 59

 

Ook dit heb ik in een formule gegoten en raar genoeg levert dit wel het resultaat 60 op.

 

Trouwens de formule Int(Bedrag) & "," & Int( Mod(Bedrag; 1) * 100) levert ook de bizare fout op.

 

Wanneer je nu 2 velden maakt

veldmod: Mod(Bedrag;1) * 100

 

veldcalc: Int(Bedrag) & "," & Truncate(veldmod; 2)

 

Dit levert dan wel weer 5,60 op.

 

Volgens mij is dit een FileMaker Bug.

 

Koen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...