@Override
	public Ptg calculatePtg( Ptg[] form )
	{
		try
		{
			Object[] o = super.getStringValuesFromPtgs( form );
			// there should always be only two ptg's in this, error if not.
			if( (o == null) || (o.length != 2) )
			{
				//if (o!=null)
				//	Logger.logWarn("calculating formula failed, wrong number of values in PtgConcat");
				return new PtgErr( PtgErr.ERROR_VALUE );
			}
			if( !o[0].getClass().isArray() )
			{
				String[] s = new String[2];
				try
				{    // 20090216 KSC: try to convert numbers to ints when converting to string as otherwise all numbers come out as x.0
					s[0] = String.valueOf( ((Double) o[0]).intValue() );
				}
				catch( Exception e )
				{
					s[0] = o[0].toString();
				}
				try
				{    // 20090216 KSC: try to convert numbers to ints when converting to string as otherwise all numbers come out as x.0
					s[1] = String.valueOf( ((Double) o[1]).intValue() );
				}
				catch( Exception e )
				{
					s[1] = o[1].toString();
				}

				String returnVal = s[0] + s[1];
				PtgStr pstr = new PtgStr( returnVal );
				return pstr;
			}
			return null;
		}
		catch( Exception e )
		{    // handle error ala Excel
			PtgErr perr = new PtgErr( PtgErr.ERROR_VALUE );
			return perr;
		}

	}