I'm see this question in a random Facebook group, I'm try to make a solution but don't understand what happen because test1 and test3 are de same (TRUE)
That is actually not equal, because R stored numbers (fractional or integers) in binary. But many fractionals (including 0.58) have no closed binary form, so they are approximated with a nearest binary representation, with numbers of precision equal to the storage dedicated to a fractional in r (64bit).
58 on the other hand gets stored as a usual binary, since it has a binary representation. But if you multiply the closest approximation of 0.58 in binary with 100, this will not be exactly 58, but a bit off. Hence, you see 58 (which is the correct result in decimal base), but in binary it's a little bit different and hence the conversion to decimal is a bit different as well (even if it is just in the 50th decimal place or somewhat).
You might want to read about transformation of numbers between binary and decimal and number srorage in R for further informations.
Tnks! for all responses. All help me to understand the problems. Im going check more information about numbers between binary and decimal and number storage.