[Lazarus] Problem rounding values at post

Allan E. Registos allan.registos at smpc.steniel.com.ph
Wed Jun 4 09:33:34 CEST 2014


On Wednesday, 04 June, 2014 04:39 AM, Daniel Erles wrote:
> Hello. 
> I have this problem: 
>
> My database (Firebird) has a table with the following fields: 
> ... 
> rTitle DECIMAL(8,4) not null,
> rDiameter DECIMAL(10,6) not null, 
> ... 
>
> In my program I have a Form with a a TZTable object (ZEOS) called
> zData, bound to that table. 
> In a routine I have the following code: 
>
> zData.Insert;
> ...
> zData.FieldByName('rTitle').AsFloat := 0.12; 
> zData.FieldByName('rDiameter').AsFloat := 0.12; 
> ...
> zData.Post;
>
> Then, at the table, I see that the values are stored as follows: 
>
> rTitle = *0.1199*
> rDiameter = 0.12 
>
> Do not know why rTitle is 0.1199 instead of 0.12 
> I need the saved values are accurate. 
> I've tried AsFloat, AsCurrency, Value, always with the same result.
A suggestion: Try to alter your column from: rTitle DECIMAL(8,4) not
null *to* rTitle DECIMAL(8,2) not null.
I think the rounding occurs because you have four numbers after the
decimal point. If you need that precision, you need to input 0.1200 for
your database to store it at that exact value

I tried your case in PostgreSQL, and it store as is without the rounding
problem.

>
> Any idea?
>
> Tks. 
> Daniel.
>
>
> --
> _______________________________________________
> Lazarus mailing list
> Lazarus at lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20140604/aa82a566/attachment-0003.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4267 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20140604/aa82a566/attachment-0003.bin>


More information about the Lazarus mailing list