Jump to content
  • 0

Trailing zeros verwijderen


Tom

Question

Posted

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

  • 0
Posted

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

  • 0
Posted

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)

  • 0
Posted
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

  • 0
Posted

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)

  • 0
Posted

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

  • 0
Posted

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.

  • 0
Posted

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...

  • 0
Posted

Bedankt Ron,

 

 

had de laatste formule niet gezien,

 

deze werkt perfect... in one line!!!!

 

 

mvg

 

Tom

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...