问题现象: | 客户的版本是U851,在采购模块里面填制采购到货单时,由于客户设置最新单价,所以填完存货编码后,系统自动带出价税合计的单价,例如,在系统表面显示单价0.34,但是我们输入数量100后系统计算出的金额不是34,而是33.93。随后我发现在企业管理器中的inventory表中的iinvncost字段数值是0.29,但是在查询分析器中看到这个字段的值是0.28999999999999998,我们不理解,各个截图我也已经整理好了。 |
问题原因: | 同解决方案 |
解决方案: | 首先这并非程序问题,而是用户采用的数据精度不够精细导致; 1、原币单价0.29是个精确值,税率17时,含税单价应是1.17*0.29=0.3393;用户单价数据精度为2位,导致保存的含税单价0.34是个四舍五入后并不精确的数值,实际价税合计应是0.3393*100=33.93; 如果直接用界面上单价×数量,得出的价税合计与实际业务中数据不符的,比如数量10000时就会相差很多。 建议扩大单价小数位数。 2、sql企业管理器和查询分析器显示数据时有略微的不同: inventory.iinvncost字段数据类型为float,在sql企业管理查询时,数据经过类型转换,如convert(decimal(20,2),iinvncost),显示的是个十进制的精确数值;而查询分析器中显示的是原数据类型数值,即浮点数,故显示的是0.28999.......。这个没有关系,不影响数据,即数据没有任何错误。 |
相关补丁: | |
版本: | 8.51 |
模块: | 采购管理 |
产品: | U851----采购管理 |
问题名称: | 采购到货单数据精度问题 |
最后更新: | 2005-06-28 00:00:00 |