Tom Geplaatst: 13 juni 2008 Delen Geplaatst: 13 juni 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 Link naar reactie
0 rmw Geplaatst: 13 juni 2008 Delen Geplaatst: 13 juni 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 Link naar reactie
0 Ron9_15 Geplaatst: 13 juni 2008 Delen Geplaatst: 13 juni 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 Link naar reactie
0 Tom Geplaatst: 16 juni 2008 Auteur Delen Geplaatst: 16 juni 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 Link naar reactie
0 Ron9_15 Geplaatst: 16 juni 2008 Delen Geplaatst: 16 juni 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 Link naar reactie
0 Tom Geplaatst: 16 juni 2008 Auteur Delen Geplaatst: 16 juni 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 Link naar reactie
0 Ron9_15 Geplaatst: 16 juni 2008 Delen Geplaatst: 16 juni 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 Link naar reactie
0 Tom Geplaatst: 16 juni 2008 Auteur Delen Geplaatst: 16 juni 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 Link naar reactie
0 Ron9_15 Geplaatst: 16 juni 2008 Delen Geplaatst: 16 juni 2008 Tom zie enkele posts hoger voor de formule ! Quote Link naar reactie
0 Tom Geplaatst: 16 juni 2008 Auteur Delen Geplaatst: 16 juni 2008 Bedankt Ron, had de laatste formule niet gezien, deze werkt perfect... in one line!!!! mvg Tom Quote Link naar reactie
Vraag
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
Link naar reactie
9 antwoorden op deze vraag
Aanbevolen berichten
Doe mee aan dit gesprek
Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.