java金额格式化工具类_Android Kotlin金额格式化工具类

importjava.math.BigDecimal

importjava.text.DecimalFormat

importjava.util.regex.Pattern

objectBigDecimalUtils {

private valfunm= createDecimalFormat()

private valpattern= Pattern.compile("[^-0-9.]")

/*** 金额相加*@method*@date: 2020/5/21 19:13*@author: moran*@paramvalueStr基础值*@paramaddStr被加数**@return金额*/funmoneyAdd(valueStr : String ,addStr : String): String{

valvalue = BigDecimal(formatMoney(valueStr))

valaugend = BigDecimal(formatMoney(addStr))

returnfunm.format(value.add(augend))

}

/*** 金额相加*@method*@date: 2020/5/21 19:13*@author: moran*@paramvalueStr基础值*@paramaddStr被加数*@paramfunm金额格式化类**@return金额*/funmoneyAdd(valueStr : String ,addStr : String,funm : DecimalFormat): String{

valvalue = BigDecimal(formatMoney(valueStr))

valaugend = BigDecimal(formatMoney(addStr))

returnfunm.format(value.add(augend))

}

/*** 金额相减*@method*@date: 2020/5/21 19:24*@author: moran*@paramvalueStr基础值*@paramminusStr被减数**@return金额*/funmoneySub(valueStr : String, minusStr : String): String{

valvalue = BigDecimal(formatMoney(valueStr))

valminuValue = BigDecimal(formatMoney(minusStr))

returnfunm.format(value.subtract(minuValue))

}

/*** 金额相减*@method*@date: 2020/5/21 19:24*@author: moran*@paramvalueStr基础值*@paramminusStr被减数*@paramfunm金额格式化类*@return金额*/funmoneySub(valueStr : String, minusStr : String,funm : DecimalFormat): String{

valvalue = BigDecimal(formatMoney(valueStr))

valminuValue = BigDecimal(formatMoney(minusStr))

returnfunm.format(value.subtract(minuValue))}

/*** 金额相乘*@method*@date: 2020/5/21 19:27*@author: moran*@paramvalueStr基础值*@parammulStr被乘数**@return金额*/funmoneyMul(valueStr : String, mulStr : String): String{

valvalue = BigDecimal(formatMoney(valueStr))

valmulValue = BigDecimal(formatMoney(mulStr))

returnfunm.format(value.multiply(mulValue))

}

/*** 金额相乘*@method*@date: 2020/5/21 19:27*@author: moran*@paramvalueStr基础值*@parammulStr被乘数*@paramfunm金额格式化类**@return金额*/funmoneyMul(valueStr : String, mulStr : String,funm : DecimalFormat): String{

valvalue = BigDecimal(formatMoney(valueStr))

valmulValue = BigDecimal(formatMoney(mulStr))

returnfunm.format(value.multiply(mulValue))

}

/*** 金额相除*@method*@date: 2020/5/21 19:29*@author: moran*@paramvalueStr除数*@paramdivideStr被除数*@paramscale小数点位数 默认为2*@paramroundingMode舍入模式:* 1.ROUND_CEILING 向正无穷方向舍入* 2.ROUND_DOWN 向零方向舍入* 3.ROUND_FLOOR 向负无穷方向舍入* 4.ROUND_HALF_DOWN 向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向下舍入, 例如1.55 保留一位小数结果为1.5* 5.ROUND_HALF_EVEN 向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,如果保留位数是奇数,使用ROUND_HALF_UP,如果是偶数,使用ROUND_HALF_DOWN* 6.ROUND_HALF_UP 向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向上舍入, 1.55保留一位小数结果为1.6* 7.ROUND_UNNECESSARY 计算结果是精确的,不需要舍入模式* 8.ROUND_UP 向远离0的方向舍入**@return金额*/funmoneyDiv(valueStr : String, divideStr : String,scale : Int = 2,roundingMode : Int = BigDecimal.ROUND_HALF_UP): String{valvalue = BigDecimal(formatMoney(valueStr))valdivideValue = BigDecimal(formatMoney(divideStr))returnfunm.format(value.divide(divideValue,scale, roundingMode))}

/*** 金额相除*@method*@date: 2020/5/21 19:29*@author: moran*@paramvalueStr除数*@paramdivideStr被除数*@paramscale小数点位数 默认为2*@paramroundingMode舍入模式:* 1.ROUND_CEILING 向正无穷方向舍入* 2.ROUND_DOWN 向零方向舍入* 3.ROUND_FLOOR 向负无穷方向舍入* 4.ROUND_HALF_DOWN 向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向下舍入, 例如1.55 保留一位小数结果为1.5* 5.ROUND_HALF_EVEN 向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,如果保留位数是奇数,使用ROUND_HALF_UP,如果是偶数,使用ROUND_HALF_DOWN* 6.ROUND_HALF_UP 向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向上舍入, 1.55保留一位小数结果为1.6* 7.ROUND_UNNECESSARY 计算结果是精确的,不需要舍入模式* 8.ROUND_UP 向远离0的方向舍入*@paramfunmDecimalFormat 金额格式化**@return金额*/

funmoneyDiv(valueStr : String, divideStr : String,scale : Int = 2,roundingMode : Int = BigDecimal.ROUND_HALF_UP,funm : DecimalFormat): String{valvalue = BigDecimal(formatMoney(valueStr))valdivideValue = BigDecimal(formatMoney(divideStr))returnfunm.format(value.divide(divideValue,scale, roundingMode))}

/*** 去除非数字内容,如:0.12元,0,01,1,11*@date: 2020/5/21 19:16*@author: moran*@paramvalue格式化金额类*@return*/funformatMoney(value: String?): String{

if(null== value || "".equals(value)){

return"0.00"}valmoney = pattern.matcher(value).replaceAll("").trim()if("".equals(money)){return"0.00"}returnmoney

}

/*** 格式化金额,*@method*@date: 2020/5/21 19:48*@author: moran*@paramvalue金额内容*@parampattern金额格式化形式*@return金额*/fundecimalFormatMoney(value: String?,pattern : String = "0.00"): String{

valformat = DecimalFormat(pattern)

returnformat.format(BigDecimal(formatMoney(value)))}

/*** 创建金额格式化对象*@method*@date: 2020/5/21 19:50*@author: moran*@param*@return*/private funcreateDecimalFormat(pattern : String = "0.00"): DecimalFormat{

valfunm = DecimalFormat(pattern)

returnfunm

}}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值