Is there a way to pass binary representations of floating point numbers to a SQL query? If sqlite's internal representation of floating point numbers is 8-byte IEEE doubles, it would be convenient to be able to pass the literal value of a float or double to the underlying SQL parser without suffering the quantization that occurs with printf()'ing floating point values.

One way I've accomplished this in the past with other interfaces is to interpret a hex value as a binary literal that can be interpreted as a raw 4-byte or 8-byte IEEE floating-point value (either via a union or other compiler trick). I understand you can *retrieve* a non-quantized value using sqlite3_column_double(), but I don't see a way to set one without having to printf() the floating point value.

Can this be done using sqlite3_bind_* interfaces, or do they quantize as well? The documentation isn't clear on this. The goal is to copy the straight 8-byte (or precision-extended 4-byte) IEEE value into the column into the database (where the column is defined as a FLOAT) without having to build a SQL statement that has an obscene number of digits in each floating point field.

Thanks in advance.
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to