The Issue:
230/100*100
= (230 / 100) * 100
= 2.3 * 100 in binary
2.3 in binary is the recurring decimal: 10.01001100110011001100110011001100...
This recurring decimal, cannot be accurately represented, due to limited precision, we get something like 2.29999999981373548507...
.
Interestingly, if you chose a division operation like such that it was accurately representable (not a recurring decimal and all digits lying within the maximum significant digits accommodated by the FP standard) in binary, you wouldn't see any such discrepancy.
E.g. 225/100*100
= 225
2.25
in binary is 10.01
Test Conversion: Binary to/from Decimal
Dealing with it:
Always be wary of precision when checking for equality between floating point values. Rounding up/down to a certain number of significant digits is good practice.