常见问题

打印模板中如何对数值做“四舍五入”的处理

2024-01-11 10:23:12 admin

在“迅联食材配送系统”的打印模板中,如果使用round函数修约小数,并非是按我们熟悉的“四舍五入”的处理方式,

而用了国际通用的“四舍六入五成双”的方式处理。


如果要使用“四舍五入”,要按以下的公式处理:


Round(Floor(ToDecimal([单价]*Power(10,2)+0.5))/Power(10,2),2);


蓝色:表示处理的字段,如为数量字段,则将[单价]更改为[数量],如为金额字段,则将[单价]更改为[金额],以此类推...

红色:调整小数位数,调整红色数字,2表示保留2位小数,1表示保留位1小数,0表示保留0位小数,以此类推...


-----------------------------------------------------------------------------------------------------------------------

以下为2023年.01月之前的处理方法,比较繁琐不推荐。建议使用上面的通用公式处理。


假设要处理的数值为[单价],按“四舍五入”来保留2位小数,则公式可以这样写:

round(floor([单价]*100+0.5)/100,2)

食品配送进销存


如果处理其它数值,只要替换里面的“[单价]"内容就可以了,

如:处理[数量]公式就这样写


round(floor([数量]*100+0.5)/100,2)


处理[金额]的公式:


round(floor([金额]*100+0.5)/100,2)



按“四舍五入”来保留1位小数,就把里面的100替换为10,2替换为1,上面3个公式分别为:


round(floor([单价]*10+0.5)/10,1)


round(floor([数量]*10+0.5)/10,1)


round(floor([金额]*10+0.5)/10,1)


按“四舍五入”来保留0位小数,就把里面的10替换为1,1替换为0,上面3个公式分别为:

round(floor([单价]*1+0.5)/1,0)


round(floor([数量]*1+0.5)/1,0)


round(floor([金额]*1+0.5)/1,0)

上述公式中的1去掉,保留0位小数可以更简化为如下:

round(floor([单价]+0.5),0)


round(floor([数量]+0.5),0)


round(floor([金额]+0.5),0)


顺便说一下,floor函数,作用就是向下取整,也就是把小数部分抹去。例如floor(7.03)=7,floor(0.12)=0,floor(7.99)=7

明白了这个函数的作用,就容易理解上面的”四舍五入“公式的原理了。

当然,即使你不理解也没关系,直接复制上面的公式,把里面的内容替换一下就可以了。