Однако: при делении 18,7 на 18,7 получится не 18,14 - это при умножении будет 18,14 а при делении число дробных знаков может быть бесконечным.
это откуда такое мнение?
http://www.ibphoenix.com/main.nfs?a=ibp ... act_num_fs
If two operands OP1 and OP2 are exact numeric with scale S1 and S2 respectively, then OP1+OP2 and OP1-OP2 are exact numeric with precision 18 and scale the larger of S1 and S2, while OP1*OP2 and OP1/OP2 are exact numeric with precision 18 and scale S1+S2.
Документация по переходу на д3 давно изучена мною и др. сотрудниками компании (иначе бы и не брались переносить софт).
хреново, видать, изучена.
Тот факт, что умножение NUMERIC в IB сделано неправильно
опять же, на основании чего сделан такой вывод?
The scales of these operation except division are specified by the SQL standard. The standard makes the precision of all these operations, and the scale of divison, implementation-defined: we define the precision as 18, and the scale of division as S1+S2, the same as is required by the standard in the case of multiplication.
И в оракле, и в mssql нормально работают умножение и деление NUMERIC.
там учет масштаба идет по другому. implementation defined, и не обязательно в соответствии со стандартом.
p.s. а стыдиться надо того, что Вы не читаете документы, которым уже как минимум 6 лет. Пусть даже то, что там изложено, Вам не нравится по каким-либо причинам, или кажется Вам неправильным.
Предложите свой вариант, вместо того чтобы тыкать в "неправильность" или кричать "исправьте".