I think that is a problem of the way floating-point arythmetics works. I think 90 can only be described aproximatly by a float value. The Unreal interface shows you a 90 as value if you type it in the details panel, but if you print the actor roation you will get the value that really was set. Even more confusing is that unreal will print you a 90.0 if you print a float variable on that you typed in 90. Maybe Unreal is calculating with 64 bit floats internally so it hits the 90 more closely… I can’t tell.
I also had problems on itrative adding of float values, this shows a workaround ,Are floats broken or is this some precision issue? - Programming & Scripting - Unreal Engine Forums
you might want to know how float values work
Floating-point arithmetic - Wikipedia also: What Every Computer Scientist Should Know About Floating-Point Arithmetic What Every Computer Scientist Should Know About Floating-Point Arithmetic