Tom Posted June 13, 2008 Posted June 13, 2008 Goede morgen iedereen, is er soms iemand die een custom function heeft om de trailing zero's te werwijderen van een getal? 13.4560 wordt 13.456 456.6000 wordt 456.6 1.2300 wordt 1.23 7894.0000 wordt 7894 alvast bedankt. Tom Quote
0 rmw Posted June 13, 2008 Posted June 13, 2008 Volgens mij doet FM dat zelf als je het veld van het type getal maakt. Je kan wel voor opmaak kiezen waarbij je altijd 4 decimalen laat zien, maar dat heeft niets met de inhoud van het veld van doen. Als het al een getal-veld is zou ik het in de opmaak zoeken en de optie 'tonen zoals ingevoerd' (weet niet precies de omschrijving, maar de 2e van boven) kiezen. rmw Quote
0 Ron9_15 Posted June 13, 2008 Posted June 13, 2008 FM doet het niet zelf, wel met leading zero's, custom is echter niet nodig. kan ook met een simpele calculatie, gebruik effe let() maar kan je in 6 met de bestaande functies.. let op geen errorhandling voorzien ( '.' of geen separator). Let ( [ links = Left ( getal ; Position ( getal ; "," ; 1 ; 1 ) - 1 ) ; rechts = Right (getal ; Length ( getal ) - Position ( getal ; "," ; Length ( getal ) ; -1 ) ) ; deler = 1 & Left ( "0000000" ; PatternCount ( rechts ; 0 ) ) ; result = links & "," & Abs( rechts / deler ) ] ; result) Quote
0 Tom Posted June 16, 2008 Author Posted June 16, 2008 FM doet het niet zelf, wel met leading zero's, custom is echter niet nodig.kan ook met een simpele calculatie, gebruik effe let() maar kan je in 6 met de bestaande functies.. let op geen errorhandling voorzien ( '.' of geen separator). Let ( [ links = Left ( getal ; Position ( getal ; "," ; 1 ; 1 ) - 1 ) ; rechts = Right (getal ; Length ( getal ) - Position ( getal ; "," ; Length ( getal ) ; -1 ) ) ; deler = 1 & Left ( "0000000" ; PatternCount ( rechts ; 0 ) ) ; result = links & "," & Abs( rechts / deler ) ] ; result) Bedankt iedereen voor de reactie, maar ik stuit hier nog op een probleempje: nl bij het getal 46,0200 krijg ik als reultaat 46,,2 ipv 46,02. Waarschijnlijk iets bij die patterncount die die nul te veel ziet... en als het getal 46,0000 geeft hij 46,0 weer waar het eigenlijk 46 moet zijn. Kan dan waarschijnlijk met if Abs( rechts / deler) = 0 .... result is gelijk aan links. mvg Tom Quote
0 Ron9_15 Posted June 16, 2008 Posted June 16, 2008 rechtzetting, voorgaande was vlug voorbeeldje ter aangave met deze evalueer je alle voorwaarden. Let ( [ links = Left ( getal ; Position ( getal ; "," ; 1 ; 1 ) - 1 ) ; rechts = Right (getal ; ( Length ( getal ) + 1) - Position ( getal ; "," ; Length ( getal ) ; -1 ) ) ; eval = Mod( rechts ;10) ; result = links & If ( eval = 0 ; "" ; eval ) ] ; result) Quote
0 Tom Posted June 16, 2008 Author Posted June 16, 2008 Let ( [ links = Left ( MPERPAL; Position( MPERPAL; "." ; 1 ; 1 ) - 1 ) ; rechts = Right( MPERPAL; Length ( MPERPAL) - Position ( MPERPAL; "." ; Length ( MPERPAL) ; -1 ) ) ; nulvanvoor = (Case (GetAsNumber(1 & rechts)<10010; 3;GetAsNumber(1 & rechts)<10100; 2;GetAsNumber(1 & rechts)<11000; 1;GetAsNumber(1 & rechts)<20000; 0;0)); deler = 1 & Left ( "0000000" ; PatternCount ( rechts ; 0 )-nulvanvoor) ; toetevoegennullen=Left ("0000000" ; nulvanvoor) ; result= (If ( rechts="0000"; links;links& "."&toetevoegennullen&Abs( rechts / deler ))) ] ; result) Met deze calc heb ik resultaat. Misschien belangrijk om weten: het bronveld bevat steeds 4 cijfers na de komma, want als je nu maar bijv 3 cijfers na de komma plaats werkt het totaal niet meer. Misschien is er wel een kortere manier van uitrekenen en kan er nog gechecked worden hoeveel cijfers er initieel na de komma staan, zodat het bruikbaar wordt voor gelijk welk type getal. Bedankt iedereen voor de info. mvg Tom Quote
0 Ron9_15 Posted June 16, 2008 Posted June 16, 2008 Prima dat je er uitkomt, kortere versie was al gepost en vangt je problemen op.Enigste wat je nog moet checken en opvangen is dat er een komma gebruikt wordt en natuurlijk dat er decimalen aanwezig zijn. Quote
0 Tom Posted June 16, 2008 Author Posted June 16, 2008 Heb toch nog een uitzondering gevonden: 14,1505 geeft nu 14,150,5 .... 14,5005 geeft 14,50,05 blijkbaar was ik te snel tevreden... Indien er nog een nul tussen staat werkt hert ook niet. we zoeken verder... Quote
0 Ron9_15 Posted June 16, 2008 Posted June 16, 2008 Tom zie enkele posts hoger voor de formule ! Quote
0 Tom Posted June 16, 2008 Author Posted June 16, 2008 Bedankt Ron, had de laatste formule niet gezien, deze werkt perfect... in one line!!!! mvg Tom Quote
Question
Tom
Goede morgen iedereen,
is er soms iemand die een custom function heeft om de trailing zero's te werwijderen van een getal?
13.4560 wordt 13.456
456.6000 wordt 456.6
1.2300 wordt 1.23
7894.0000 wordt 7894
alvast bedankt.
Tom
9 answers 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.