Ga naar inhoud
  • 0

Getallen omzetten naar text met behoud van format


tweetie

Vraag

Geplaatst:

Hoi,

ik wil graag emails genereren vanuit Filemaker, waarbij veel getallen in komen te staan.

Ik wil graag dat de getallen hun format behouden, dus 1.201,10 euro.

Met NumToText kom ik er niet omdat de duizend separator niet wordt meegenomen en 10 cent wordt weergegeven met 0,1 ipv van 0,10.

 

Ik heb een calculatie gemaakt hiervoor, echter vind ik hem te lang en niet generiek genoeg omdat hij getallen boven 100.000.000 niet goed meepakt. Bovendien voor negatieve getallen werkt ie ook nog niet goed, maar dat vind ik niet interessant want we werken toch niet met negatieve getallen.

Dit grapje moet ik dus gaan uithalen voor 16 verschillende getallen in 1 email, dus kijk maar dan hoe groot het verhaal gaat worden.

 

Ik ben bang dat er geen eenvoudiger oplossing bestaat, maar ik hoop stiekum op een lumineus idee van iemand alhier.

 

Veld input is het getal

Voor de hele euri:
Case(
Length(Int(input))>6;  Middle(Int(input);1;Length(Int(input))-6) &"."&Middle(Int(input);Length(Int(input))-5;3) &"."&Right(Int(input);3);
Length(Int(input))>3;  Middle(Int(input);1;Length(Int(input))-3) &"."&Right(Int(input);3);
Int(input)
)

Voor de centen:
Right("00"&100*Round(input-Int(input);2);2)

 

Ik heb een test-bestandje meegestuurd

test.fp5

1 antwoord op deze vraag

Aanbevolen berichten

  • 0
Geplaatst:
Hoi,

ik wil graag emails genereren vanuit Filemaker, waarbij veel getallen in komen te staan.

Ik wil graag dat de getallen hun format behouden, dus 1.201,10 euro.

Met NumToText kom ik er niet omdat de duizend separator niet wordt meegenomen en 10 cent wordt weergegeven met 0,1 ipv van 0,10.

 

Deze werkt voor bedragen tot de 1 miljard:

 

If(Sign(bedrag) = -1 , "-", "") &

 

Replace(

Replace(

Truncate(Abs(bedrag), 0),

Length(Int(Abs(bedrag))) - 2 ,

0 ,

If(Length(Int(Abs(bedrag))) > 3 , ".", "")

),

Length(Int(Abs(bedrag))) - 5 ,

0 ,

If(Length(Int(Abs(bedrag))) > 6 , ".", "")

)

 

& "," &

 

Right("00" & Round(Mod(Abs(bedrag), 1) * 100 , 0), 2)

 

 

Had een mooie toepassing van de FM7 Let() functie geweest! :-)

 

Groet,

René

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