在PHP中,一般来说,需要取上整数的情况下,取下整数。 ceil ()、floor ) )函数就可以了。 但是,如何处理金额的上调和下调呢?
四舍五入/** *默认保留两位数(金额四舍五入算法) @ param $ amount * @ paramint $ decimals * @ return float|int */publicstaticfunctiongetceieion $amount=$amount/pow(10,$decimals ); returnnumber_format($amount,$decimals,'.',' ); }一开始我以为上面的代码很稳定,但发现现实和理想不一样。 如果输入35.02,则会出现35.03。 为什么? $amount*pow(10,$decimals )的结果为浮动,输出为3502.00000000023974,因此最终结果当然为35.03
解析/** *默认情况下为两位数(金额进位算法) @ param $ amount * @ paramint $ decimals * @ return float|int */publicstaticfunctiongeteton $amount=ceil($amount; $amount=$amount/pow(10,$decimals ); returnnumber_format($amount,$decimals,'.',' ); } (这里是round ) )提供一个不太优雅的解决方案,保留一个小数位数(其实我并不觉得很好)。 以及ceil ()。
整体往下取也不会发生上述问题。 方法是一样的。 我不会在这里投稿。
其他灵巧的草丛期待着能提出更好的方案。