Floating point arithmetic works by rounding the true result to the next representable floating point number (using the selected precision and rounding mode).

With double precision you have

`0.032 -> 0.0320000000000000006661338147750939242541790008544921875`

0.032*23500 -> 752.00000000000001565414464721470721997320652008056640625

The last number is rounded to 752 and with FPC304/Win7 you really get OK!

OTH, for extended precision you get

`0.032 -> 0.03199999999999999999867185233870525706834087031893432140350341796875`

0.032*23500 -> 751.999999999999999968788529959573541106010452494956552982330322265625

The last number is rounded to 751.999999999999999944488848768742172978818416595458984375, and therefore you get NOT OK.

Your expression 23500.0*32/1000 works, because all numbers are (representable as) integers and so the result must be an integer.