Jorge Carrión ha scritto:

>I use integer for money fields without decimals. I store cents... in display
>just field / 100. Hope it's valid for you
>
>2010/3/16 Bill-Lancaster <bill-lancas...@lineone.net>
>
>  
>
>>Yes - that IS much simpler but I have found that some of my SQL fields are
>>not exact money values (like 10.23 say) but have tiny extra decimal values.
>>
>>These display as normal in a gridview, tableview or whatever.
>>
>>By converting SQL field to float called fTempVal
>>then  fTempVal=fTempVal * 100.   fTempVal - Int(fTempVal) gives a very
>>small decimal value.
>>
>>    
>>
If you can not use integers (because your  database is already in 
production, or you have too much code to change), then you should round 
the values before storing them in the database, or, at least, while 
retrieving them.

If you multiply a float by 100, you do nearly nothing (the decimal point 
moves a little). You should multiply, then take the integer part, and 
then divide again:

    goodvalue = int(badvalue * 100 + 0.5) / 100

The above should round to the cent: change "100" with "1000" or "10000" 
to get more precision.
The "+ 0.5" is a quick (and erroneous but acceptable) way to round off. 
Take care for negative values.

I am too lazy to try (why should I, when you have everything set up to 
do it? :-)), but you can also try to use different multipliers - powers 
of 2. Instead of multiply and divide for 100, you could use 128, which 
is nearer to the way the machine stores floats. The only doubt is what 
to add: if using 100, you add 0.5 -  if you use 128, you should add 
0.64... you can try to see if it works better.

Regards,
Doriano



------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Gambas-user mailing list
Gambas-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gambas-user

Reply via email to