java math类和BigDecimal 类

java math类

Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数,Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。

Java  Math类中的常用方法:

static double abs(double a)   返回 double 值的绝对值。

static float abs(float a)           返回 float 值的绝对值。

static int abs (int a)                返回 int 值的绝对值。

static long abs(long a)           返回 long 值的绝对值。

static double max(double a, double b)     返回两个 double 值中较大的一个。

static float max(flo at a, float b)                返回两个 float 值中较大的一个。

static int max(int a, int b)                          返回两个 int 值中较大的一个。

static long max(long a, long b)                 返回两个 long 值中较大的一个。

static double min(double a, double b)      返回两个 double 值中较小的一个。

static float min(float a, float b)                  返回两个 float 值中较小的一个。

static int min(int a, int b)                           返回两个 int 值中较小的一个。

static long min(long a, long b)                  返回两个 long 值中较小的一个。

BigDecimal 类型

        Java中提供了大数字(超过16位有效位)的操作类,即 java.math.BinInteger 类和 java.math.BigDecimal 类,用于高精度计算。其中 BigInteger 类是针对大整数的处理类,而 BigDecimal 类则是针对大小数的处理类。

        BigDecimal 类,它支持任何精度的定点数,可以用它来精确计算货币值。

        BigDecimal类创建的是对象,不能使用传统的+、-、*、/等算术运算符直接对其进行数学运算,而必须调用其对应的方法.方法的参数也必须是BigDecimal类型的对象。

        构造 BigDecimal 对象常用以下方法:

        BigDecimal BigDecimal(String s); //常用,推荐使用

        static BigDecimal valueOf(double d); //常用,推荐使用

其中,

1. double 参数的构造方法,不允许使用!!!!因为它不能精确的得到相应的值;

2. String 构造方法是完全可预知的: 写入 new BigDecimal("0.1") 将创建一个 BigDecimal,它正好等于预期的0.1; 因此,通常建议

优先使用 String 构造方法

3. 静态方法 valueOf(double val) 内部实现,仍是将 double 类型转为 String 类型; 这通常是将 double(或float)转化为

BigDecimal 的首选方法

总结:

(1)商业计算使用BigDecimal。

(2)尽量使用参数类型为String的构造函数。

(3) BigDecimal都是不可变的(immutable)的,在进行每一步运算时,都会产生一个新的对象,所以在做加减乘除运算时千万

要保存操作后的值






猜你喜欢

转载自blog.csdn.net/a15252006129/article/details/80333244