# Commas ( Number ; Digit )

Insert commas into numbers.

Average rating: 4.7 (22 votes) Log in to vote

Koji Takeuchi - Show more from this author
TonicNote, Inc. https://tonic-note.com |

Function definition: (Copy & paste into FileMaker's Edit Custom Function window)

Commas ( Number ; Digit )

2014.09.26, Koji Takeuchi

description:

Insert commas into numbers.

Params:

Number Numbers you are about to add commas.

Digit Digit number for comma insertions.

Default is 3.

Example:

Commas ( 123456 ; 3 )

-> "123,456"

Commas ( 1234.56 ; 3 )

-> "1,234.56"

Commas ( 123456 ; "" ) = Commas ( 123456 ; 3 )

Commas ( "" ; "?" ) will show this help.

## Comments

Raybaudi, Rome Sep 28, 2014 |
||

The built in FMP function: NumToJText ( number ; 1 ; 0 ) inserts a comma every 3 digit, so NumToJText ( 1234.56 ; 1 ; 0 ) returns 1,234.56 |
||

Koji Takeuchi, TonicNote, Inc. Sep 28, 2014 |
||

Thanks Raybaudi, you're right! I'm Japanese but I never use NumToJText function ;-) |
||

Steve Thoms, Norwich, VT Dec 8, 2015 |
||

This CF fails if the number submitted is a negative number whose absolute value has a length that is a multiple of the Digit, i.e. -107 is returned as 0,107. I have corrected this using the code here: (This code starts after the declaration of the MSG variable) CHECK = GetAsNumber ( Number ) ; SIGN = If ( CHECK < 0 ; "-" ; "" ) ; SOURCE = Abs ( GetAsNumber ( Number ) ) ; DIGIT = Case ( not IsEmpty ( GetAsNumber ( Digit ) ) ; GetAsNumber ( Digit ) ; 3 ) ; SPLIT = Substitute ( GetAsText ( SOURCE ) ; "." ; ¶ ) ; INTVAL = GetValue ( SPLIT ; 1 ) ; DECIMAL = GetValue ( SPLIT ; 2 ) ; CURRENT = Right ( INTVAL ; DIGIT ) & Case ( not IsEmpty ( DECIMAL ) ; "." & DECIMAL ) ; REST = Left ( INTVAL ; Length ( INTVAL ) - DIGIT ) ] ; Case ( ERROR ; MSG ; Length ( INTVAL ) > DIGIT ; Commas ( SIGN & REST ; DIGIT ) & "," & CURRENT ; SIGN & SOURCE ) ) I hope this helps, Steve |
||

Note: these functions are not guaranteed or supported by BrianDunning.com. Please contact the individual developer with any questions or problems.