Trata el número como String y usa Pos para solo agarrar los decimales y Length para saber su longitud.
Código:
int NumeroDecimales( String Numero )
{
/**/
if ( !Numero.Pos( "." ) ) return 0;
return Numero.SubString( Numero.Pos( "." ) + 1, Numero.Length() ).Length();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
/**/
ShowMessage( NumeroDecimales( 1.5687 ) ); //4
ShowMessage( NumeroDecimales( 234 ) ); //0
ShowMessage( NumeroDecimales( 234.56 ) ); //2
}
Pd. Perdón por el chile con huevo en los tipos, pero esto es lo mas simple y funcional que se me ocurrió