BigDecimal类
对于不需要任何准确计算精度的数字可以直接使用float或double,但是如果需要精确计算的结果,则必须使用BigDecimal类,而且使用BigDecimal类也可以进行大数的操作。BigDecimal类的常用方法如表11-15所示。
表 BigDecimal类的常用方法
序号
|
方 法
|
类型
|
描 述
|
1
|
public BigDecimal(double val)
|
构造
|
将double表示形式转换
为BigDecimal
|
2
|
public BigDecimal(int val)
|
构造
|
将int表示形式转换为
BigDecimal
|
3
|
public BigDecimal(String val)
|
构造
|
将字符串表示
形式转换为BigDecimal
|
4
|
public BigDecimal add(BigDecimal augend)
|
普通
|
加法
|
5
|
public BigDecimal subtract(BigDecimal subtrahend)
|
普通
|
减法
|
6
|
public BigDecimal multiply(BigDecimal multiplicand)
|
普通
|
乘法
|
7
|
public BigDecimal divide(BigDecimal divisor)
|
普通
|
除法
|
范例:进行四舍五入的四则运算
-
package org.lxh.demo11.numberdemo;
-
import java.math.BigDecimal;
-
class MyMath {
- public static double add(double d1, double d2)
{
- BigDecimal b1 = new BigDecimal(d1);
- BigDecimal b2 = new BigDecimal(d2);
- return b1.add(b2).doubleValue();
- }
- public static double sub(double d1, double d2)
{
- BigDecimal b1 = new BigDecimal(d1);
- BigDecimal b2 = new BigDecimal(d2);
- return b1.subtract(b2).doubleValue();
- }
- public static double mul(double d1, double d2)
{
- BigDecimal b1 = new BigDecimal(d1);
- BigDecimal b2 = new BigDecimal(d2);
- return b1.multiply(b2).doubleValue();
- }
- public static double div(double d1,
double d2,int len) {
- BigDecimal b1 = new BigDecimal(d1);
- BigDecimal b2 = new BigDecimal(d2);
- return b1.divide(b2,len,BigDecimal.
ROUND_HALF_UP).doubleValue();
- }
- public static double round(double d,
int len) {
- 操作
- BigDecimal b1 = new BigDecimal(d);
- BigDecimal b2 = new BigDecimal(1);
-
-
- return b1.divide(b2, len,BigDecimal.
ROUND_HALF_UP).doubleValue();
- }
- }
-
public class BigDecimalDemo01 {
- public static void main(String[] args) {
- System.out.println("加法运算:" +
MyMath.round(MyMath.add(10.345,
-
3.333), 1));
- System.out.println("乘法运算:" +
MyMath.round(MyMath.mul(10.345,
-
3.333), 3));
- System.out.println("除法运算:" +
MyMath.div(10.345, 3.333, 3));
- System.out.println("减法运算:" +
MyMath.round(MyMath.sub(10.345,
-
3.333), 3));
- }
- }
分享到:
相关推荐
用算符优先分析法对优先级进行判断. 用大数类BigDecimal进行运算.
js中操作Bigdecimal类,包含所有java中bigdecimal的操作,加减乘除,四舍五入,比较等。
alert(new BigDecimal("10").add(new BigDecimal("3E+10"))); //- alert(new BigDecimal("10").subtract(new BigDecimal("3E+10"))); //* alert(new BigDecimal("10").multiply(new BigDecimal("3E+10"))); // / ...
支持+-*/,格式化数字,四舍五入等,BigDecimal精准处理
BigDecimal#compareTo - 副本
关于浮点数在计算机中的存储方式与精度丢失问题(float,double):https://blog.csdn.net/alzzw/article/details/108132830 可以用此类解决
本版中只有一个用于生产环境的文件:BigDecimal-all-last.min.js,大小为26K,如果WEB服务器打开GZIP压缩,可以减小至7K,如需完整版本请移步至:http://download.csdn.net/detail/aquaqu2009/4575230 简单用法: ...
离线安装包,亲测可用
* (由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精确的浮点数运算,包括加减乘除和四舍五入) * @author chenke * @time 2017/12/5 16:22 * @mail ch_chenke@163.com */ public class Arith...
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装