Ga naar inhoud
  • 0

Trailing zeros verwijderen


Tom

Vraag

9 antwoorden op deze vraag

Aanbevolen berichten

  • 0

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

Link naar reactie
  • 0

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)

Link naar reactie
  • 0
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

Link naar reactie
  • 0

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)

Link naar reactie
  • 0

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

Link naar reactie

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.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...