Subject Re: [firebird-support] Cast as Numeric without parenthesis
Author Tim Ward
On 26/03/2015 12:35, Svein Erling Tysvær svein.erling.tysvaer@... [firebird-support] wrote:

Here, I find that

SELECT CAST(123456789.12345678 as decimal) FROM RDB$DATABASE

succeeds, whereas

SELECT CAST(123456789.123456789 as decimal) FROM RDB$DATABASE

fails. I don't know why.

Once Upon A Time there was a language called Algol68 whose designers appeared to be keen to get all that sort of thing absolutely right, according to a careful reading of the "transput" specs ("I/O" was considered an old-fashioned term).

The conclusion one had to come to was that the only way to get the conversion of numbers between binary and decimal digit representation right was to do all the work (not terribly quickly, to be sure) as arbitrary length string manipulation, with only a very very carefully designed conversion to binary form, from a carefully designed canonical string representation, as the last stage of a potentially long and complex sequence of operations.

I've never seen anyone go to remotely as much trouble to get this stuff right since then. I can't, however, see such an approach having a problem with the example above.
Tim Ward