Why does Montage_Pause() stop on the next frame of the animation instead of the current frame

Such as: In current frame, an animation playing at position 0.50000 and I call Montage_Pause() from here, but the animation does not stop at current frame, it will continue to play a frame and stop at position 0.53333
How do I stop the animation at the current frame ?

You can manually set the animation position if you need that much control. I use this function to exactly interp animations over time:

/**
* Set the montage animation position as a percentage from 0-1.
* Montage will snap to position adjusted for length of the montage in seconds.
*/
void UInteractiveSkeletalMesh::SetMontageAnimationPosition(float position)
{
	if (_animationInstance )
	{
		if (_montageInstance)
		{
			_montageInstance->SetPosition(_montageLength * position);
		}
	}
}

I don’t know when I’m going to pause it, if I’m going to pause it and then specify it in this method, the animation will play to the next frame and then jump back to the frame I want, which is obviously an unacceptable performance