MathUtils--工具类

记录一下我在项目中使用到的一些工具类,首先就是这个MathUtils工具类,就是一个处理数据的工具类,接下来话不多说直接上代码。

class MathUtils {

    companion object {
        private var instance: MathUtils? = null
            get() {
                if (field == null) {
                    field = MathUtils()
                }
                return field
            }

        fun get(): MathUtils {
            return instance!!
        }
    }
}

这是工具类的单例创建,接下来就上一些我们常用的一些小方法
首先转换类型有Double转换成Int

fun mathDoubleToInt(number: Double?): String {
        if (number == null) {
            return "0"
        }
        return if (number > 0) {
            val format = DecimalFormat("#")
            format.roundingMode = RoundingMode.FLOOR
            format.format(number)
        } else {
            val format = DecimalFormat("#")
            format.roundingMode = RoundingMode.FLOOR
            format.format(number)
        }
    } 

这里我们用的RoundingMode.FLOOR这个是向下取整的,大多数数据涉及到一些财务方面的,所以这里直接使用向下取整,避免引发一些因为四舍五入产生的一些歧义。这里返回的是string字符串类型的,一般来说,我们处理这个字符串都是为了展示,所以返回的直接就是string类型。

接下来是常用的保留两位小数的方法

fun mathPriceParseDouble(number: Double?): String {
        if (number == null) {
            return "0.00"
        }
        val format = DecimalFormat("0.00")
        var price = number
        return {
            format.roundingMode = RoundingMode.FLOOR
            format.format(price)
        }
    }

上面提到了四舍五入这个类型,接下来我们就整一个四舍五入的方法

fun roundedAmount(number: Float?): String {
        if (number == null) {
            return "0"
        }
        val format = DecimalFormat("#")
        format.roundingMode = RoundingMode.HALF_UP
        var price = number
        return format.format(price)
    }

这里没有选用保存两位小数,保留两位小数就是在DecimalFormat(“0.00”)这就直接保留了两位小数,没有0的话直接补0,还有DecimalFormat(“0.0#”)这个#是没有0的话就直接省略了,接下来就不上太多代码块了,接下来就说一下这个保留小数的规则,这里保留小数保留几位最主要就是DecimalFormat("")这个方法,里面小数点后面几个0就是保留几位小数的,这里就不多说了,更多的就是需要大家自己去实践了。
搬砖加油,886!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值