id value = _myNumberValue;
if ( [value isKindOfClass:[NSNumber class]] )
{
// We have to check what is NSNumber really pointing to
if ( value == (void*)kCFBooleanFalse || value == (void*)kCFBooleanTrue)
{
// The value is a BOOL
}
else if ( ! CFNumberIsFloatType((CFNumberRef)value))
{
// The value is an int
}
else
{
// The value is a float or double
}
}