Page 1 of 1

Function to determine the number of decimal places?

Posted: Sun Jun 17, 2007 10:20 am
by dpaterso
Hello everyone,

Long time - no post!

I have been pulling my hair out to work this one out and I just do not seem to be able to get it right:

Is there a function that will return the number of decimal places that a number has?

Examples:

1.9873 has 4 decimal places
13.15 has 2 decimal places
9780 has 0 decimal places
655.39 has 2 decimal places

and so on and so forth.

Regards,

Dale.

Re: Function to determine the number of decimal places?

Posted: Sun Jun 17, 2007 10:27 am
by Enrico Maria Giordano

Code: Select all

FUNCTION MAIN()

    ? NDEC( 1.9873 )
    ? NDEC( 13.15 )
    ? NDEC( 9780 )
    ? NDEC( 655.39 )

    RETURN NIL


FUNCTION NDEC( nVal )

    LOCAL cVal := STR( nVal )

    LOCAL nDec := AT( ".", cVal )

    IF nDec > 0; nDec = LEN( cVal ) - nDec; ENDIF

    RETURN nDec
EMG