java大数字操作:BigInteger,BigDecimal(浮点型)

java大数字操作:

BigInteger:大数字整型的

BigDecimal(浮点型):大数字小数的,也适用大的整数

BigInteger:

        String num1 = "100381828646148164";
		String num2 = "10998979766868";
		BigInteger big1 = new BigInteger(num1);
		BigInteger big2 =new BigInteger(num2);
		System.out.println("两数相家:" + big1.add(big2));
		System.out.println("两数相减:" + big1.subtract(big2));
		System.out.println("两数相乘:" + big1.multiply(big2));
		System.out.println("两数相除:" + big1.divide(big2));

  

BigDecimal:

import java.math.BigDecimal;

class MyMath{
	public static double add(String num1, String num2)
	{
		BigDecimal bd1 = new BigDecimal(num1);
		BigDecimal bd2 = new BigDecimal(num2);
		return bd1.add(bd2).doubleValue();
	}

	public static double sub(String num1, String num2)
	{
		BigDecimal bd1 = new BigDecimal(num1);
		BigDecimal bd2 = new BigDecimal(num2);
		return bd1.subtract(bd2).doubleValue();

	}

	public static double mul(String num1, String num2)
	{
		BigDecimal bd1 = new  BigDecimal(num1);
		BigDecimal bd2 = new BigDecimal(num2);
		return bd1.multiply(bd2).doubleValue();
	}

	public static double div(String num1, String num2)
	{
		BigDecimal bd1 = new BigDecimal(num1);
		BigDecimal bd2 = new BigDecimal(num2);
		return bd1.divide(bd2).doubleValue();
	}

	public static double round(String num1, int scale)
	{
		BigDecimal bd1 = new BigDecimal(num1);
		BigDecimal bd2 =  new BigDecimal(1);
		return bd1.divide(bd2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
	}
}

public class BigDecimalDemo {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根

		String num1 = "12345.524234";
		String num2 = "1234.23424";
		System.out.println("相加:"+ MyMath.add(num1,num2));
	}

}

  

时间: 2024-10-26 01:51:20

java大数字操作:BigInteger,BigDecimal(浮点型)的相关文章

大数字操作、BigInteger的使用 BigDecimal(很大的小数)

1 public class Test4 { 2 public static void main(String[] args) { 3 BigInteger num1=new BigInteger("123456789123456789123456789"); 4 BigInteger num2=new BigInteger("2345678901234567890"); 5 System.out.println("加:"+(num1.add(n

数字(数学)操作类 Math Random 类 ,大数字操作类

Math 提供了大量的数学操作方法 Math类中所有的方法都是static 方法 重点看这个操作,四舍五入 System.out.println(Math.round(-16.5)) ; -16 System.out.println(Math.round(16.5)) ; 17 大于等于0.5进位. Random类 取得随机数的类 java.util 包 产生100之内的随机整数 Random rand = new Random() ; for(int x = 0 ; x < 10 ; x ++

Java中数字操作

public static void main(String[] args) throws Exception { { //Math函数的四舍五入,注意负数的时候小数位<=0.5都会被舍去,>0.5的才会被进位 System.out.println(Math.round(15.5)); System.out.println(Math.round(-15.5)); System.out.println(Math.round(-15.51)); } { //用Random类生成随机数 List&l

java 大数字计算

|--代码示例 1 /** 2 * @auther::9527 3 * @Description: 算法学习 4 * @program: oop 5 * @create: 2019-09-12 23:48 6 */ 7 public class Test { 8 public static void main(String[] args) { 9 //乘数 10 int multiplier = 358623965; 11 //被乘数 12 int multiplicand = 20020367

java学习笔记——大数据操作类

java.math包中提供了两个大数字操作类:BigInteger(大整数操作类) BigDecimal(大小数操作类). 大整数操作类:BigInteger BigInteger类构造方法:public BigInteger(String val) 常用方法:public BigInteger add(BigInteger val) public BigInteger subtract(BigInteger val) public BigInteger multiply(BigInteger

Java基础语法&lt;五&gt; 大数值BigInteger BigDecimal

如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有平有用的类:BigInteger和BigDecimal.这两个类可以处理包含任意长度数字序列的数值. BigInteger类实现了任意精度的整数运算 BigDecimal实现了任意精度的浮点数运算 使用静态的valueOf方法可以将普通的数值转换为大数值: BigInteger a = BigInteger.valueOf(100); 遗憾的是,不能使用人们熟悉的算术运算符(+ *)处理大数值. 而需要使用大数

数字操作类Math,Random,BigInteger,BigDecimal

数字操作类 Math, 1.java.lang 类 Math public final class Mathextends Object Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数. 从以下版本开始: JDK1.0 public static double random()                 System.out.println(Math.round(10.45));  //10 System.out.println(Math.round(10.

Java的大数操作分为BigInteger和BigDecimal

Java的大数操作分为BigInteger和BigDecimal,但这两给类是分开使用的,有时候在编程的时候显得略微繁琐,现在编写了一个将二者合二为一的大数操作类. 大数操作类代码如下: 1 package blog; 2 3 import java.math.BigDecimal; 4 import java.math.BigInteger; 5 import java.math.RoundingMode; 6 7 /** 8 * 9 * @author 瓦尔登湖畔的小木屋 10 * BigN

java的数字精确计算问题-BigDecimal

java的数字运算,偶尔喝出现精度的问题,以下阐述的 java的BigDecimal类的使用. 例如: System.out.println(0.9+0.3); 结果1.2 System.out.println(1.9+0.3); 结果2.1999999999999997 System.out.println(1.9+0.4); 结果2.3 java为了让float或者double类型能够精确的计算,提供了BigDecimal类. 示例如下: public static BigDecimal g