In the attached project I played a bit with the dbf float field. I don't know if it is a bug (I doubt) or a matter of definition. It looks to me that the "Size" in the fielddef is largely ignored, and the "Precision" determines the total count of digits - not just the decimal places. So, when you say the Precision is 3 then you only have 3 digits to display the value, and I would expect 12345.67 to be displayed as 1.2E4 (three digits: 1, 2, and 4). But you say it is displayed a 1.2E3 (exponent smaller by 1), and I can confirm that when I display your table in MyDbfStudio. So what is going on here? Can you show the code how you create the table and in particular the fielddefs?