c# - 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
我不会再收到错误,并且一切似乎都运行顺利。但是,我不想将所有十进制类型更改为双精度数以使其正常工作。
我希望这里有人以前遇到过这种情况并知道可能是什么原因造成的。
解决方案
我认为这个查询试图转换 SUM() 的精确结果,它不能表示为 .Net 的小数,并且它拒绝默默地进行有损转换。
尝试使用SELECT ROUND(SUM(MYFIELD), 4) FROM MYTABLE
或类似的东西。
推荐阅读
- node.js - 出现类似 Route.post() 的错误需要回调函数,但在 express 中有一个 [object String]
- c++ - 从字符串访问枚举索引
- javascript - 提交 Google 表单时无法生成 PDF 文件
- python - Pandas 列替换行中的 $ 和字母
- c - 用 C 语言打印 0 到 90 度的 sin 值表
- javascript - 如何从 div 中仅获取文本和图像并忽略其他 html 标签
- javascript - 限制 JavaScript 中的字母重复次数
- intercept - 网真代理安装超时
- c# - 设置使应用程序崩溃的事件
- data-science - Apache nifi 在数据科学中的应用