Python小数取整 向下取整、四舍五入、向上取整【分享】
金蝶云社区-云社区用户4u731234
云社区用户4u731234
31人赞赏了该文章 9985次浏览 未经作者许可,禁止转载编辑于2017年04月06日 13:04:21

本帖子想要达到的效果:
会配置实体服务规则(能用实体服务规则实现的,尽量选用实体服务规则实现),
设置实体服务规则的字段必然触发条件,
小数类型的 可以实现向下取整、四舍五入、向上取整 功能。

先看界面测试效果:
小数1.0 向下取整1.0、四舍五入1.0、向上取整1.0

小数1.1 向下取整1.0、四舍五入1.0、向上取整2.0


小数1.5 向下取整1.0、四舍五入2.0、向上取整2.0


小数1.99 向下取整1.0、四舍五入2.0、向上取整2.0

具体设置:
添加4个小数字段,分别为 “小数”“小数_向下取整“、“小数_四舍五入“、“小数_向上取整“。
单据头添加实体服务规则:


实体服务规则,小数字段改变,触发相应的3个字段取数
如果是值更新方式实现,需要配置小数字段的3个值更新服务,
并且如果涉及到多个字段每个字段都需要配置值更新,
配置实体服务规则,清晰明了),

前提条件:小数字段改变条件 小数=小数 字段必然触发条件
这里经常有人会问到设置成 1=1,这样设置是不会进行执行的,
因为实体服务规则的是否需要执行,是需要先判断某个字段值改变了,相应的字段标识是否设置在了实体服务规则的前提条件中,
如在里面,才会进行解析判断前提条件,显然 设置1=1 是不包含任何字段的标识,也就相当于一条无用的实体服务规则配置。

具体的三个计算公式的设置:
F_PAIK_Decimal1 = int ( F_PAIK_Decimal )
即 小数_向下取整 = int ( 小数 ) int 向下取整


F_PAIK_Decimal2 = round ( F_PAIK_Decimal )
即 小数_四舍五入 = round ( 小数 ) round 四舍五入


F_PAIK_Decimal3 = int ( round ( F_PAIK_Decimal + 0.49 ) )
即 小数_向上取整 = int ( round ( 小数 + 0.49 ) )
这里要注意下:Python是支持 math.ceil(小数值) 但我们这里是直接用不了的,
因为需要导入 import math 模块的,我们这里就不能进行使用。
因此我们就变通下,因为 向下取整和四舍五入是可以直接使用的,
通过四舍五入与向下取整做的一个变通,实现向上取整

完 谢谢。