Welcome to floating point inaccuracies. You’ll get used to it. That’s why you don’t compare floating point numbers for equality, as it is not possible to represent 0.7 precisely in a non-infinite-length binary number.
I don’t know for sure, but my guess would be that Unity stores every channel of a Color struct not as floats, but as 8 bits. So precision is even lower than that of a float. So Kurt-Dekker is right (I think) in his assessment that it’s a precision issue, it’s just not a float precision issue.
I suppose color channels are stored this way, because four channels (RGBA) would make a nice 32 bits chunk, and thats a pretty common way to store colors in many softwares. So I can’t swear that Unity works that way as well, but it is likely.