Sql 公式中的水晶报表乘法错误(不舍入)

Sql 公式中的水晶报表乘法错误(不舍入),sql,math,crystal-reports,Sql,Math,Crystal Reports,刚才发生了最奇怪的事 我有一个报告中的行,它是一个db值(数量-数值51)和一个导致数值0.8的价格公式。我只想要简单的乘法51*0.8,应该得到40.80,但是CR给了我40.6。我对它进行了测试,并尝试了数量+价格(51+0.8)。CR给出了正确的51.8,但51*0.8仍然是40.6 所有类似数据的误差相同(略低于其应有值) 现在,我通过使用SQL表达式字段解决了这个问题,并使其正常工作,但我想与您分享 也许我错过了什么,或者做了一些非常糟糕的事情,所以任何提示都将不胜感激 问候, 更新:

刚才发生了最奇怪的事

我有一个报告中的行,它是一个db值(数量-数值51)和一个导致数值0.8的价格公式。我只想要简单的乘法51*0.8,应该得到40.80,但是CR给了我40.6。我对它进行了测试,并尝试了数量+价格(51+0.8)。CR给出了正确的51.8,但51*0.8仍然是40.6

所有类似数据的误差相同(略低于其应有值)

现在,我通过使用SQL表达式字段解决了这个问题,并使其正常工作,但我想与您分享

也许我错过了什么,或者做了一些非常糟糕的事情,所以任何提示都将不胜感激

问候,

更新:

51来自数据库:

{LineItem.Quant}
0.8计算为:

PriceNoVAT: {LineItem.Price} * (100 - {LineItem.TAX}) / 100
PriceAfterDiscount: {@PriceNoVAT} * (100 - {LineItem.Discount}) / 100
PriceVAT: {@PriceAfterDiscount} * (100 + {LineItem.TAX}) / 100
我想:

LineTotal: {LineItem.Quant} * {@PriceVAT}
这意味着:

51 * 0.8 = 40.6 (Should be 40.8)
我把所有三个字段都放在paper design中(Quant、PriceVAT和LineTotal),我可以在预览中看到它们:分别为51、0.8和40.6。所以CR正确地计算了0.8(我希望是0.8),但不是最终的乘法

同时如果我尝试

LineTotal: {LineItem.Quant} + {@PriceVAT}
这就产生了正确的结果:

51 + 0.8 = 51.8
对于所有类似的数据,CR总是计算不正确(或者我在这方面做错了什么)


所以,你说对了,我很困惑。我不是CR专家,但我也不是初学者。这并不是我希望发布问题的原因,但是:)

CR中的每个数字字段在报告画布上显示时都会有一定程度的舍入或小数剪裁。很可能你的前后价值观并不是你想象的那样。检查数值字段的格式,查看正在进行何种舍入/剪裁。“51*0.8”是否为硬编码值,或者您使用的是生成
51*0.8
的计算。如果是,则粘贴有问题的计算。