Change GameObject Scale by relative value?

So I’m trying to allow the player to scale an object up and down using the left and right arrow keys.
I’m doing it with the code below, but if I keep subtracting by the same value, as the gameObject gets smaller, the scale speed will increase. Is there a way for me to have the object scale up/down keeping the same scale factor, so it increases/decreases at the same rate?

I hope this makes sense! Thanks!

float objectScaleSpeed = 2f;
selectedObject.transform.localScale += new Vector3(objectScaleSpeed, objectScaleSpeed, objectScaleSpeed);

If I am understanding correctly, it might be possible to multiply by a scalar value instead of adding:

float objectScaleSpeed = 2f;
selectedObject.transform.localScale *= 1f + objectScaleSpeed * Time.deltaTime;

This is probably sufficient, but you could also give each object a script that stores a relative scale value and set the object’s scale according to a formula. For example:

Vector3 originalLocalScale;
void Start(){
  originalLocalScale = transform.localScale;
}

float myRelativeScale = 1f;
public void IncreaseScale(float objectScaleSpeed){
  myRelativeScale += Time.deltaTime * objectScaleSpeed;
  transform.localScale = originalLocalScale * Mathf.Pow(myRelativeScale, 1f/3f);
}

I hope this gives you some ideas!