Replicating floats efficiently

Is there a recommended, efficient way to replicate floats whose value can change at each tick?

My approach is making the float value itself non-replicated, then casting the float to an integer that’s replicated. This approach works in cases like we are keeping the battery of a camcorder and the client only sees the battery bars of their camcorder (like 1 of 3 bars). I’m curious if there’s a better way to do this.

I’ve read this thread by the way, but my question wasn’t answered there.

I did something similar with controller analog stick input. I created a 8 bit value for two axis input in one byte for each axis to have a range of [-7…+7]. When you think about it, that is all the resolution one needs for most stick input needs, since it was only replicated to indicate which animation to play (forward, backward, strafe, or blend combo; run, walk, or stance).

I think your approach makes sense, and I would try to push only 2 bits across the wire if the UE replication supports it.