首页 > 解决方案 > Apache Ignite.NET 十进制幅度溢出

问题描述

我正在尝试使用 Apache Ignite .NET 制作一些东西,但是当我尝试对十进制字段进行 SUM 时,我收到以下错误:

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

我要运行的查询非常简单。

SELECT SUM(MYFIELD) FROM MYTABLE

并且decimal在插入时映射到 C# 类型。该查询在 DBeaver 中运行良好,并返回一个大约 600 亿的数字。它还DECIMAL在 DBeaver 中将该字段显示为 a。

如果我将 C# 中的字段类型更改为 adouble我不会再收到错误,并且一切似乎都运行顺利。但是,我不想将所有十进制类型更改为双精度数以使其正常工作。

我希望这里有人以前遇到过这种情况并知道可能是什么原因造成的。

标签: c#.net-coreignite

解决方案


我认为这个查询试图转换 SUM() 的精确结果,它不能表示为 .Net 的小数,并且它拒绝默默地进行有损转换。

尝试使用SELECT ROUND(SUM(MYFIELD), 4) FROM MYTABLE或类似的东西。


推荐阅读