Apache Ignite. NET Переполнение десятичной величины - PullRequest
1 голос
/ 08 апреля 2020

Я пытаюсь что-то сделать, используя Apache Ignite. NET, однако, когда я пытаюсь сделать СУММУ для десятичного поля, я получаю следующую ошибку:

Decimal magnitude overflow (must be less than 96 bits): 112

Запрос, который я пытаюсь выполнить, очень прост.

SELECT SUM(MYFIELD) FROM MYTABLE

И он отображается на тип C# decimal при вставке. Запрос отлично работает в DBeaver и возвращает число около 60 миллиардов. Он также показывает поле как DECIMAL в DBeaver.

Если я изменю тип поля в C# на double, я больше не получаю ошибку, и все, кажется, работает гладко. Однако я не хочу go и менять все мои десятичные типы на двойные, чтобы это работало.

Я надеялся, что кто-то здесь сталкивался с этим раньше и знал, что может быть причиной.

1 Ответ

1 голос
/ 08 апреля 2020

Я думаю, что этот запрос пытается преобразовать точный результат SUM (), который не представляется в виде десятичного числа. Net, и он отказывается молча выполнять преобразование с потерями.

Попробуйте использовать SELECT ROUND(SUM(MYFIELD), 4) FROM MYTABLE или что-то подобное.

...