SubSonic is irritatingly short on documentation (which is one reason I abandoned it). Scott Kuhl wrote a "Getting Started with SubSonic" document (just Google his name and SubSonic) but parts of it appeared to be out of date.
Here is Scott's blog - a place to start at least.
Here is the document's home page. I was curious as to whether the document is indeed out of date and I think it is: the web page has a last updated date in 2006.
Unfortunately, I know of no other documentation and I did look for it.
Update: See the link to documentation that Rob Conery provided in his answer.
This is a SQLite issue as, from what I understand, SQLite doesn't have a concept of "types" - only inferences on values:
http://www.sqlite.org/faq.html#q3
How to ALTER sqlite column (iPhone)?
What I'm guessing here is that the inference is getting lost on the float translation - if you read up the docs, it says as much:
A column with NUMERIC affinity may
contain values using all five storage
classes. When text data is inserted
into a NUMERIC column, an attempt is
made to convert it to an integer or
real number before it is stored. If
the conversion is successful (meaning
that the conversion occurs without
loss of information), then the value
is stored using the INTEGER or REAL
storage class. If the conversion
cannot be performed without loss of
information then the value is stored
using the TEXT storage class
So it looks like the value you're passing in is NOT able to be stored as REAL (for some reason) and is trying to be tweaked to TEXT, with the limitation of a length of 8. This makes sense also because it's counting the decimal place - and it shouldn't (it only would if it's text).
Have a read here:
http://www.sqlite.org/datatype3.html#affinity
It looks like this is the issue you're dealing with. All in all, SQLite is a "ducktyped" database, and many people have been bitten by it.
So, in short, I think your answer is probably to use Math.Round(3) to bring the value in under 8 total numbers + decimal (and the negative symbol) so it can be coerced into the column.
Best Answer
I've not used SQL2008 myself, but I know there is still a bug in SubSonic 2.1 and 2.2 in handling the new date only and time only data types (it sees them as strings).