Сообщение Re[3]: T-SQL. Деление. Частное - 17 значащих десятичных разр от 22.06.2023 17:44
Изменено 22.06.2023 20:27 Воронин Иван
Re[3]: T-SQL. Деление. Частное - 17 значащих десятичных разрядов
Здравствуйте, Sinclair, Вы писали:
S>Если от вас не требуется оперировать суммами более десяти квадриллионов рублей, то можно просто вычислять вот так:
S>
Пока облом.
Забыл упомянуть, что это не своя ИС, а покупная (OLAP). В редакторе источников данных есть вычисляемые поля.
При вычислениях (делении точно) они переводят Numeric во Float. К этому коду у меня доступа нет — это в "движке". Не понял зачем.
Именно поэтому у меня зародилось предположение: "Судя по поведению, Numeric для деления конвертируется туда и обратно в двойную точность."
S>Если от вас не требуется оперировать суммами более десяти квадриллионов рублей, то можно просто вычислять вот так:
S>
S>print cast(41761414.14 as dec(19, 2)) * 100 / cast(42183246.61 as dec(19,2))
S>
Пока облом.
Забыл упомянуть, что это не своя ИС, а покупная (OLAP). В редакторе источников данных есть вычисляемые поля.
При вычислениях (делении точно) они переводят Numeric во Float. К этому коду у меня доступа нет — это в "движке". Не понял зачем.
Именно поэтому у меня зародилось предположение: "Судя по поведению, Numeric для деления конвертируется туда и обратно в двойную точность."
Re[3]: T-SQL. Деление. Частное - 17 значащих десятичных разр
Здравствуйте, Sinclair, Вы писали:
S>Если от вас не требуется оперировать суммами более десяти квадриллионов рублей, то можно просто вычислять вот так:
S>
Пока облом.
Забыл упомянуть, что это не своя ИС, а покупная (OLAP). В редакторе источников данных есть вычисляемые поля.
Попробовал реализовать, и выяснил.
При вычислениях (делении точно) они переводят Numeric во Float. К этому коду у меня доступа нет — это в "движке". Не понял зачем.
Именно поэтому у меня зародилось предположение: "Судя по поведению, Numeric для деления конвертируется туда и обратно в двойную точность."
S>Если от вас не требуется оперировать суммами более десяти квадриллионов рублей, то можно просто вычислять вот так:
S>
S>print cast(41761414.14 as dec(19, 2)) * 100 / cast(42183246.61 as dec(19,2))
S>
Пока облом.
Забыл упомянуть, что это не своя ИС, а покупная (OLAP). В редакторе источников данных есть вычисляемые поля.
Попробовал реализовать, и выяснил.
При вычислениях (делении точно) они переводят Numeric во Float. К этому коду у меня доступа нет — это в "движке". Не понял зачем.
Именно поэтому у меня зародилось предположение: "Судя по поведению, Numeric для деления конвертируется туда и обратно в двойную точность."