我是靠谱客的博主 清爽乌冬面,这篇文章主要介绍Kotlin BigDecimal进位取整/现金收银推荐金额,现在分享给大家,希望可以做个参考。

 我目前的点餐机项目,之前有一个需求:

 根据用户点餐后需要付款的金额,给出推荐现金数额。

如下图 , 客户需支付5.5元,这边给出快捷收银预估值

 如下图,客户需要支付44元,这边给出快捷收银预估值

 这其实是4个宽度权重为1的TextView:

    fun initView(){
        textCoin?.text = "" + getMoneyUp(mShouldPrice, 1) + "元"
        textCoin1?.text = "" + getMoneyUp(mShouldPrice, 2) + "元"
        if (StringUtils.getMoneyUp(mShouldPrice, 3).trim().equals("0")) {
            textCoin2?.visibility = View.GONE
        } else {
            textCoin2?.text = "" + getMoneyUp(mShouldPrice, 3) + "元"
        }
        if (StringUtils.getMoneyUp(mShouldPrice, 4).trim().equals("0")) {
            textCoin3?.visibility = View.GONE
        } else {
            textCoin3?.text = "" + getMoneyUp(mShouldPrice, 4) + "元"
        }
    }
    //获取强入取整         
    fun getMoneyUp(bigDecimal: BigDecimal?, type: Int?):String{
        when (type){
            1 -> {
                return "" + bigDecimal?.setScale(0, BigDecimal.ROUND_CEILING)
            }
            2 -> {
                return "" + bigDecimal?.divide(BigDecimal(10), 0, BigDecimal.ROUND_CEILING)?.setScale(0, BigDecimal.ROUND_HALF_UP)?.multiply(BigDecimal(10))
            }
            3 -> {
                return "" + bigDecimal?.divide(BigDecimal(100), 1, BigDecimal.ROUND_CEILING)?.setScale(1, BigDecimal.ROUND_HALF_UP)?.setScale(0, BigDecimal.ROUND_HALF_UP)?.multiply(BigDecimal(100))
            }
            4 -> {
                return "" + bigDecimal?.divide(BigDecimal(1000), 2, BigDecimal.ROUND_CEILING)?.setScale(2, BigDecimal.ROUND_HALF_UP)?.setScale(1, BigDecimal.ROUND_HALF_UP)?.setScale(0, BigDecimal.ROUND_HALF_UP)?.multiply(BigDecimal(1000))
            }

        }

        return ""
    }

 

最后

以上就是清爽乌冬面最近收集整理的关于Kotlin BigDecimal进位取整/现金收银推荐金额的全部内容,更多相关Kotlin内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部