public static Object getObject( Object in )
	{
		// do not record -- only called from other methods
		if( !(in instanceof String) )
		{
			return in;
		}

		String input = String.valueOf( in );
		Object ret = input; // default is the original string

		try
		{
			ret = new Double( input );
			return ret;
		}
		catch( NumberFormatException ex )
		{
			try
			{
				ret = new Float( input );
				return ret;
			}
			catch( NumberFormatException ex2 )
			{
				try
				{
					ret = Integer.valueOf( input );
					return ret;
				}
				catch( NumberFormatException ex3 )
				{
					// ret Is set outside of loop incase no match is ever found.
				}
			}
		}

		// list of formatting chars to check for
		String[][] fmtlist = { { "$", "," }, { ",", "," }, { "%", "," } };

		// strip the formatting
		for( String[] aFmtlist : fmtlist )
		{
			if( input.contains( aFmtlist[0] ) )
			{ // contains!
				String converted = StringTool.replaceText( input, aFmtlist[0], "" ); // strip first token (ie: '$')
				converted = StringTool.replaceText( converted, aFmtlist[1], "" ); // strip
				// second
				// token
				// (ie: ',')
				try
				{
					ret = new Double( converted );
					return ret;
				}
				catch( NumberFormatException ex )
				{
					try
					{
						ret = new Float( converted );
						return ret;
					}
					catch( NumberFormatException ex2 )
					{
						try
						{
							ret = Integer.valueOf( converted );
							return ret;
						}
						catch( NumberFormatException ex3 )
						{
							// ret Is set outside of loop incase no match is
							// ever found.
						}
					}
				}
			}

		}

		return ret;
	}