Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

OpenERP的小数精度问题



  • 以销售订单上的价格计算为例说明。<br />系统可以设置:1)销售价格的小数位数;2)财务数据的小数位数;3)币种换算的精确度。前两者的设置,版本V6.1中在菜单“setting->customization->database structure->decimal accurancy”中设置。后者的设置在菜单“Accouting -> Configuration -> Miscellaneous -> Currencies”中设置。<br />销售订单上产品行上的价格小记及订单上的价格总计的计算规则是:<br />1)产品单价的小数位数是系统设置的“销售价格的小数位数”;<br />2)价格小记的计算是,a)单价*数量,b)税额计算,根据价内税和价外税的不同,a中的结果要扣除税额,税额计算结果的小数位数是系统设置的“财务数据的小数位数”,c)币种换算,b中计算的结果还要按该订单的币种上设定的精度进行取舍。<br />  因此,价格小记的最终结果,和“1)销售价格的小数位数;2)财务数据的小数位数;3)币种换算的精确度”三者的设置都相关。订单上的价格总计的结果,同理和三者的设置相关。<br /><br />此外,界面上的价格显示,编辑状态的时候,系统会正确的显示实际小数位数,但在只读状态的时候,系统只会显示2位小数位数。经查,原因在于代码文件:OpenERP 6.1-1\server\openerp\addons\web\static\src\js\formats.js中,浮点数默认是按2位显示,修改该代码中的默认位数即可正确显示。



  • 以销售订单上的价格计算为例说明。<br />系统可以设置:1)销售价格的小数位数;2)财务数据的小数位数;3)币种换算的精确度。前两者的设置,版本V6.1中在菜单“setting->customization->database structure->decimal accurancy”中设置。后者的设置在菜单“Accouting -> Configuration -> Miscellaneous -> Currencies”中设置。<br />销售订单上产品行上的价格小记及订单上的价格总计的计算规则是:<br />1)产品单价的小数位数是系统设置的“销售价格的小数位数”;<br />2)价格小记的计算是,a)单价*数量,b)税额计算,根据价内税和价外税的不同,a中的结果要扣除税额,税额计算结果的小数位数是系统设置的“财务数据的小数位数”,c)币种换算,b中计算的结果还要按该订单的币种上设定的精度进行取舍。<br />  因此,价格小记的最终结果,和“1)销售价格的小数位数;2)财务数据的小数位数;3)币种换算的精确度”三者的设置都相关。订单上的价格总计的结果,同理和三者的设置相关。<br /><br />此外,界面上的价格显示,编辑状态的时候,系统会正确的显示实际小数位数,但在只读状态的时候,系统只会显示2位小数位数。经查,原因在于代码文件:OpenERP 6.1-1\server\openerp\addons\web\static\src\js\formats.js中,浮点数默认是按2位显示,修改该代码中的默认位数即可正确显示。



  • 强人



  • 谢谢老肖的研究和分享。<br /><br />OpenERP在计算精度和小数位数这里设计得不够细致。实际上像property那样针对每个字段设置精度值,会更灵活。



  • 我装好了找不到地方设置。能否有更详细的说明呢?<br />我只是在应用层面。


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待