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):
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?
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?
Question
AvD
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?

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
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.