龙空技术网

Java精确运算高位数数字

Java程序员的日常 197

前言:

当前姐妹们对“java获取数字的位数”大约比较重视,咱们都需要剖析一些“java获取数字的位数”的相关文章。那么小编同时在网摘上汇集了一些关于“java获取数字的位数””的相关内容,希望兄弟们能喜欢,朋友们一起来学习一下吧!

BigDecimal是在Java中java.math包中提供的API类,是用来对超过16位有效数字进行精确运算的,像double只能处理16位有效数字,在商业计算中如果需要精确计算就要用到BigDecimal,还有一种情况就是mysql表中的某个字段类型是Decimal(N,M),对应Java的类型就是BigDecimal,用过逆向工程的都知道,Decimal(N,M)类型的字段映射成Java对象的类型就是BigDecimal,我们经常要对BigDecimal类型进行加减乘除运算,然而,BigDecimal是一个类,不能直接加减乘除,接下来就来看看BigDecimal。

一、构造器

BigDecimal(int) 创建一个具有参数所指定整数值的对象。

BigDecimal(double) 创建一个具有参数所指定双精度值的对象。

BigDecimal(long) 创建一个具有参数所指定长整数值的对象。

BigDecimal(String) 创建一个具有参数所指定以字符串表示的数值的对象。

二、方法描述

1.add(BigDecimal) 加法运算

public static void main(String[] args) {

BigDecimal a=new BigDecimal("333");

BigDecimal b=new BigDecimal("333");

BigDecimal add = a.add(b);

System.out.println(add);//666

}

2.subtract(BigDecimal) 减法运算

3.multiply(BigDecimal) 乘法运算

public static void main(String[] args) {

BigDecimal a=new BigDecimal(3.33);

BigDecimal b=new BigDecimal(3.33);

double value = a.multiply(b).doubleValue();//浮点类型的运算如果位数过多可以转为BigDecimal来运算

System.out.println(value);//11.0889

}

4.divide(BigDecimal) 除法运算

5.toString() 转换为字符串

6.doubleValue() 转换为双精度类型(乘法运算已经演示)

7.floatValue() 转换为单精度类型。

8.longValue() 转换为长整数类型。

9.intValue() 转换为整数类型。

10.compareTo BigDecimal比较

public static void main(String[] args) {

BigDecimal a=new BigDecimal(1);

BigDecimal b=new BigDecimal(2);

System.out.println(a.compareTo(b));//-1

System.out.println(b.compareTo(b));//0

System.out.println(b.compareTo(a));//1

}

由此可见左边比右边小返回-1,相等返回0,左右比右边大返回1

最后感谢各位看官观看本篇文章,如果觉得文章还行的话可以点点关注,我会经常分享,我们共同进步。

标签: #java获取数字的位数