Thanks, Roger Baklund wrote:
* [EMAIL PROTECTED]
Hello, I have a table bill like when (date), how_much (float), what (varchar).
Now I store some bills on it - how_much will get numbers with 2 digits after point.
Why do you think that? Note that FLOAT is an approximate numeric type. The value you insert is stored in a binary format, and when you retrieve it, it may have a slightly different value from what you inserted, like you have observed.
Read more here:
<URL: http://www.mysql.com/doc/en/Problems_with_float.html > <URL: http://www.mysql.com/doc/en/Numeric_types.html >
Aha, now I have SUM(ROUND(how_much,2)), this works so far. Does this mean I can not trust float, decimal etc. for financial purposes?
The result is the same in my query.
Then I want to know how much money I spent each month. SELECT SUM(how_much), YEAR(when), MONTH(when) FROM bill GROUP BY (YEAR(when)*12+MONTH(when))
I don't understand this GROUP BY clause... the subject of this message indicates that this too was an issue? I would have expected "GROUP BY YEAR(when), MONTH(when)".
I expect to get numbers with not more than 2 digits after the point. Surprisingly I get ??.259999978 when I expect to get ??.26 or some else strange numbers.
See the ROUND() function:
<URL: http://www.mysql.com/doc/en/Mathematical_functions.html#IDX1291 >
Note the C library dependency of this function, it may behave differently on different computers.
I would store the how_much as pfennnigs or cents or whatever and use an INTEGER type.
-- Roger
Thanks again, Adib.
-- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]
