我想知道为什么以下 SEQUEL 计算不能正常工作,它们似乎更多地基于内容而不是语法。这一切都始于我们的一个观点(帮助系统)后续查询未能正确计算一列的一行数据(不是所有行)。我从 Sequel Viewpoint 应用程序中复制了代码并直接粘贴到STRSQL
iseries 上并体验了相同的结果。您将看到下面使用值 922.459 进行的计算——其中一个导致++++
,一个产生正确的值(不带括号),一个计算正确但计算精简。您还会看到 50 的值 - 结果为零,而 1 使用 50.5 显示正确的结果。我收到数据十进制错误,但当然没有什么可以帮助我理解原因——尤其是因为我正在处理所有硬编码的数字。我确实发现了一件事——如果我将数字从 50 更改为 50.0——计算是正确的。但是,如果我对数字 922 执行相同操作 - 922 和 922.0 都会导致+++
. 有任何想法吗?
SELECT Bprod,(1.1*1/1)*(922.459*1/1000)*1.06
FROM BOMBYITEM
产量:
Item Numeric Expression
Number
124927 +++++++++++++++++++++++++++++++++
尽管:
SELECT bprod,1.1*1/1 * 922.459*1/1000 *1.06
FROM BOMBYITEM
产量:
Item Numeric Expression
Number
124927 1.075587194000000000000000
和:
SELECT bprod,(1.1)*(.922459) *1.06
FROM BOMBYITEM
产量:
Item Numeric Expression
Number
124927 1.075587194
和:
SELECT Bprod,(1.1*1/1)*(50*1/1000)*1.06
FROM BOMBYITEM
产量:
Item Numeric Expression
Number
124927 .000000000000000000000
和:
SELECT Bprod,(1.1*1/1)*(50.5*1/1000)*1.06
FROM BOMBYITEM
产量:
Item Numeric Expression
Number
124927 .0588830000000000000000000000000