Android(安卓)金钱计算BigDecimal 的使用
16lz
2021-01-24
今天做了一个购物车的功能 ,设计到了钱的计算,使用到了BigDecimal 晚上回来总结下
这个BigDecimal 计算钱呢很好用
其主要有
1 add 加法
2 subtract 减法
3 multiply 乘法
4 divide 除法
一般我们的价格都是getText 获取的,这里定义2个String 代表 获取的价格
1 加法计算
BigDecimal num = new BigDecimal("1.01"); BigDecimal num1 =new BigDecimal("2.02"); System.out.print(num.add(num1));
2 减法计算
BigDecimal num = new BigDecimal("1.01"); BigDecimal num1 =new BigDecimal("2.02"); System.out.print(num1.subtract(num));
3 乘法计算
BigDecimal num = new BigDecimal("1.01"); BigDecimal num1 =new BigDecimal("2.02"); System.out.print(num1.multiply(num));
4 除法计算
BigDecimal num = new BigDecimal("1.01"); BigDecimal num1 =new BigDecimal("2.02"); System.out.print(num1.divide(num));
当然也可以混合在一起使用
保留 小数点后面几位数可以使用setScale 方法
如下 这个是保留2位
BigDecimal num = new BigDecimal("1.01"); BigDecimal num1 =new BigDecimal("2.02"); BigDecimal total = num.multiply(num1).setScale(2,RoundingMode.HALF_UP) ; System.out.print(total);
注意注意注意
声明的时候不要 直接指定float 类型的
如下
BigDecimal num = new BigDecimal(1.01);BigDecimal num1 =new BigDecimal(2.02);
这样的精度就会丢失了
如果想修改类型看下代码四舍五入保留一位小数点 在转为float类型
BigDecimal bar = new BigDecimal(item.getScore()); BigDecimal num = new BigDecimal(2); float ratingBar = bar.divide(num).setScale(1,RoundingMode.HALF_UP).floatValue(); Log.e("---------ratingbar", String.valueOf(ratingBar));
完美解决后台返回 8.9,等之类的分数,计初多少颗星星问题。
更多相关文章
- Android实训案例(一)——计算器的运算逻辑
- android 从EditText中获取内容
- Android 计算出生日期至今天数(获取宝宝出生到现在天数)
- android 除法运算保留小数点
- android面试题一
- android 使用InputFilter 对金额和长度进行限制
- Android开发开发技巧之 EditText 属性大全
- android EditText输入金额,限制位数和显示小数点后几位
- Android之尺寸getDimension、getDimensionPixelOffset 和 getDim