Jump to content
  • 0

Getallen omzetten naar text met behoud van format


tweetie

Question

Posted

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 answer to this question

Recommended Posts

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

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