我目前的点餐机项目,之前有一个需求:
根据用户点餐后需要付款的金额,给出推荐现金数额。
如下图 , 客户需支付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内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复