code: public Timecode resamplePrecise(final Timebase toRate) throws ResamplingException
  	{
  		final Timecode resampled = resample(toRate); // Resample to the new timebase
  		final Timecode back = resampled.resample(this.timebase); // Resample back to the source timebase
  
  
  		// If we don't have the same number of seconds and frames when resampling back then we lost precision.
  		if ((back.getSecondsPart() != this.getSecondsPart()) || (back.getFramesPart() != this.getFramesPart()))
  		{
  			throw new ResamplingException("Timecode resample would have lost precision: " +
  			                              this.toString() +
  			                              "@" +
  			                              this.timebase +
  			                              " to " +
  			                              toRate);
  		}
  		else
  		{
  			return resampled;
  		}
  	}
docs: Resamples
  
  @param toRate
  
  @return
  
  @throws ResamplingException