记录一下我在项目中使用到的一些工具类,首先就是这个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!!!