bigdecimal取绝对值(bigdecimal取最小值)

http://www.itjxue.com  2023-01-30 08:30  来源:未知  点击次数: 

java中有类似支持C语言的MIRACL大数运算库吗,可以实现模幂运算的,大数加减乘除之类的

参考jdk中的BigInteger和BigDecinal类,它们定义了你所需要的大数运算

bigdecimal的使用

? ???加:add(BigDecima)

?????减:subtract(BigDecimal)

? ? ?乘:multiply(BigDecimal)

? ? ?除:divide(BigDecimal)

? ? ?乘方:pow(BigDecimal)

? ? ?取绝对值:abs()

? ? ?取反:negate()

? ? ?对比:compareTo(BigDecimal)

? ? ?设置小数点精确度:setScale(int)

? ? ?设置保留小数点精确度并添加保留方式(直接加1或者四舍五入):setScale(int, int)

BigDecimal的运算——加减乘除,有关金额的计算

这里对比了两种形式,第一种直接value写数字的值,第二种用string来表示

加法 add()函数 减法subtract()函数

乘法multiply()函数 除法divide()函数 绝对值abs()函数

我这里承接上面初始化Bigdecimal分别用string和数进行运算对比

————————————————

BigInteger和BigDecimal

在Java中有两个类BigInteger和BigDecimal分别表示大整数类和大浮点数类,至于两个类的对象能表示最大范围不清楚,理论上能够表示无,无限大的数,只要计算机内存足够大。

这两个类都在java.math.*包中,因此每次必须在开头处引用该包

BigInteger类型的数字范围较 Integer 类型的数字范围要大得多。我们都知道 Integer 是 Int 的包装类,int 的最大值为 231-1,如果要计算更大的数字,使用Integer 数据类型就无法实现了,所以 Java 中提供了BigInteger 类来处理更大的数字。 BigInteger 支持任意精度的整数,也就是说在运算中 BigInteger 类型可以准确地表示任何大小的整数值而不会丢失任何信息

#基本操作

BigInteger的运算都没有对原值进行操作,而是返回一个新的BigInteger对象,1.valueOf(parament); 将参数转换为制定的类型

比如 int a=3;

BigInteger b=BigInteger.valueOf(a);//b=3

String s=”12345”;

BigInteger c=BigInteger.valueOf(s);//c=12345

2.add(); 大整数相加

BigInteger a=new BigInteger(“23”);

BigInteger b=new BigInteger(“34”);

a.?add(b);//57

3.subtract(); 相减

4.multiply(); 相乘

5.divide();?相除取整

6.remainder(); 取余

7.pow();?a.pow(b)=a^b

8.gcd();?最大公约数

9.abs(); 绝对值

10.negate(); 取反数

11.mod(); a.mod(b)=a%b=a.remainder(b);

12.max(); min();

13.compareTo()两者比较

基本常量(3个):

A=BigInteger.ONE?1

B=BigInteger.TEN?10

C=BigInteger.ZERO?0

//键盘读入

Scanner cin=new Scanner(System.in);// 读入

BigInteger m=scanner.BigInteger();

#进制转换

//类型转换(返回类型如下)

在日常开发中我们经常会碰到小数计算,而小数直接计算的话会出现一些小小的错误,如下:

System.out.println(1.01 + 2.02);

理想输出3.03,实际上输出的是3.0300000000000002。这是因为不论是float 还是double都是浮点数,而计算机是二进制的,浮点数会失去一定的精确度。有没有不失精度的办法呢?这里就要用到BigDecimal了。

java的float只能用来进行科学计算或工程计算,在大多数的商业计算中,一般采用java.math.BigDecimal类来进行精确计算

基本方法如BigInteger,其他用法如下:

#使用BigDecimal实现四舍五入(支持float和double类型)

#保留有效数字

(责任编辑:IT教学网)

更多

相关linux文章

推荐linux文章