The approximation actually takes place when you convert the decimal to float. I might surprise you, but 281.583cannot be represented exactly as a floating point number in a PC. this is because floating point numbers are represented as the sum of binary fractions on a PC. 0.5, 0.25and 0.125can be converted accurately, but not 0.583.
( ) Σ( 1/2^i*Bi ), Bi - i- (0|1). 0.625 = 1/2 + 1/4 . , .
( - ).
i| *2 and trim| Bit value| (2^-1)*bit
0,583
1 1,166 1 0,5
2 0,332 0 0
3 0,664 0 0
4 1,328 1 0,0625
5 0,656 0 0
6 1,312 1 0,015625
7 0,624 0 0
8 1,248 1 0,00390625
9 0,496 0 0
10 0,992 0 0
11 1,984 1 0,000488281
12 1,968 1 0,000244141
13 1,936 1 0,00012207
14 1,872 1 6,10352E-05
15 1,744 1 3,05176E-05
16 1,488 1 1,52588E-05
17 0,976 0 0
18 1,952 1 3,8147E-06
19 1,904 1 1,90735E-06
SUM= 0,582998276