I think the problem is with the %d in the db_query() function. It should be %f, if you want float value to be stored.

If you change line 510 of votingapi.module from

db_query("INSERT INTO {votingapi_cache} (vote_cache_id, content_type, content_id, value, value_type, tag, function) VALUES (%d, '%s', %d, %d, '%s', '%s', '%s')", 

...to

db_query("INSERT INTO {votingapi_cache} (vote_cache_id, content_type, content_id, value, value_type, tag, function) VALUES (%d, '%s', %d, %f, '%s', '%s', '%s')", 

This fix seems to work for me. Not sure if storing all cached values as a float rather than an int will cause problems in caching values which are supposed to be integers (e.g. count). I suspect this would not be a problem. My cursory testing seems to show no problems.

Also, I wonder whether the same problem with %d instead of %f is preventing decimal values from being inserted into the votingapi_vote table. Conceivably you would want to insert non-integer values.

Comments

eaton’s picture

Status: Active » Fixed

Now in the current CVS version. A bit more testing and I'll mark it as 4.7. Thanks!

Anonymous’s picture

Status: Fixed » Closed (fixed)