java处理最大数_java之大数的处理

Java的提供了操作大数的类,即java.math.BigInter与java.math.BigDecimal类。Big.math.BigInter是针对大整数的处理类,而BigDecimal针对大

小数的处理

BigInteger类常用的几种运算方法:

public BigInteger (String val) :构造BigInteger

public BigInteger add(BigInteger val):加法

public BigInteger subtract(BigInteger val):减法

public BigInteger multiply(BigInteger val): 乘法

public BigInteger divide(BigInteger val): 除法

public BigInteger remainder(BigInter val): 取余

public BigInteger[] divideAndRemainder(BigInteger val): 用数组返回余数和商,结果数组中第一个值为商,第二个值为余数。

public BigInteger pow(int exponent): 进行取参数的exponent次方操作

public BigInteger negate(): 取相反数。

public BigInteger shiftLeft(int n): 将数字左移n位,如果n为负数,做右移操作

public BigInteger shiftRight(int n): 和上面的相反

public BigInteger and(BigInteger val): 与操作

public BigInteger or(BigInteger val): 或操作

public BigInteger compareTo(BigInteger val): 数字比较

public BigInteger boolean equals(Object x):当参数x是BigInteger类型的数字并且数值相等时,返回true。

public BigInteger max(BigInteger val): 返回较大的值

public BigInteger min(BigInteger val):返回较小的值

BigDecimal类的相关处理

构造方法

public BigDecimal(double augend)

public BigDecimal(String val)

加、减、乘、除

public BigDecimal add(BigDecimal augend) : 加法

public BigDecimal subtract(BigDecimal augend) : 减法

public BigDecimal multiply(BigjDecimal augend) : 乘法

public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode) :除法,3个参数分别为除数、商的小数点后的位数、近似处理模式。

divide()方法的多种处理模式

BigDecimal.ROUND_UP 商的最后一位如果大于0,则向前进位,正负数都如此

BigDecimal.ROUND_DOWN 商的最后一位无论是什么数字都省略

BigDecimal.ROUND_CEILING 商如果是正数,按照ROUND_UP模式处理:如果是负数,按照ROUND_DOWN模式处理。这种模式的处理都会使近似值大于等于实际值

BigDecimal.ROUND_FLOOR     与ROUND_CEILING模式相反

BigDecimal.ROUND_HALF_DOWN   对商进行四舍五入操作,如果商最后一位小于等于5,做舍弃操作:如果最后一位大于5,则做进位操作,如7.5=7

BigDecimal.ROUND_HALF_UP  对商进行四舍五入操作,

如果商最后一位小于5,做舍弃操作:如果最后一位大于等于5,则做进位操作,如7.5=8

BigDecimal,ROUND_HALF_EVEN 如果商的倒数第二位为奇数,则按照ROUND_HALF_UP处理:如果为偶数,则按照ROUND_HALF_DOWN处理,如7.5=8,8.5=8。

最后,附上一个小例子,哈哈

import java.math.BigInteger;

import java.util.Scanner;

public class main {

public static void main(String[] args) {

Scanner cin=new Scanner(System.in);

BigInteger a=cin.nextBigInteger();

BigInteger b=cin.nextBigInteger();

BigInteger c=a.add(b);

System.out.println(c);

}

}

public class main {

public static void main(String[] args) {

String a="abx";

String b=a.substring(1);

System.out.println(b);

}

}

//输出 bx

对于  BigDecimal b ;     (b=(0.4321)^ 20)String s = b.toPlainString() ;System.out.println(s) ;输出为:0.00000005148554641076956121994511276767154838481760200726351203835429763013462401若String s = b.toString() ;输出为:5.148554641076956121994511276767154838481760200726351203835429763013462401E-8

import

java.math.BigDecimal;

import java.util.Scanner;

public class main {

public static void main(String[] args) {

Scanner cin=new Scanner(System.in);

while(cin.hasNextBigDecimal()){

BigDecimal a=cin.nextBigDecimal();

BigDecimal b=a.stripTrailingZeros();

System.out.println(b);

}

}

}

//输入1.20000,输出1.2

本文地址:https://ai.52learn.online/742

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值