您当前的位置: 首页 >  Java

梁同学与Android

暂无认证

  • 5浏览

    0关注

    618博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Java 大数类BigInteger与BigDecimal详细介绍(配蓝桥杯例题讲解)

梁同学与Android 发布时间:2019-08-07 20:27:46 ,浏览量:5

文章目录
    • 1.基本函数
      • 1.1 java.math.BigInteger.valueOf(long val)
    • 2.运算法则
      • 2.1 基本运算
      • 2.2 compareTo(BigInteger other)方法
      • 2.3 boolean equals();
      • 2.4 BigInteger构造函数:
        • 2.4.1 BigInteger(String val);
        • 2.4.2 BigInteger(String val,int radix);
    • 3.基本常量
    • 4.基本操作
    • 5.蓝桥杯试题
      • 5.1 题目描述
      • 5.2 考点
      • 5.3 代码实例
      • 5.4 结果
      • 5.5 代码讲解
      • 5.6 详细讲解文件输出

如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.mate包中的两个很有用的类:BigInteger与BigDecimal。这两个类可以处理包含任意长度数字序列的数值。BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算。

1.基本函数 1.1 java.math.BigInteger.valueOf(long val)

将参数转换为制定的类型,返回一个BigInteger,其值等于指定long。这种“静态工厂方法”优先于(long)构造函数提供的,因为它允许为经常使用的BigIntegers重用。

 比如
 int a=3;
 BigInteger b=BigInteger.valueOf(a);
 则b=3;
 String s="12345";
 BigInteger c=BigInteger.valueOf(s);
 则c=12345;

还可以使用BigInteger.valueOf(long val)计算n的阶乘

import java.math.BigInteger;
import java.util.Scanner;
 
public class Main {
	public static void main(String[] args)
	{
		Scanner scan=new Scanner(System.in);
		while(scan.hasNext())
		{
			int n=scan.nextInt();
			BigInteger ans=BigInteger.valueOf(1);
			for(int i=1;i0这句代码的意思是:b是否大于0
  • (b.compareTo(BigInteger.ZERO)>0?"+":"")+b:如果大于零b的前面就添加一个加号,否则b的前面就为空 如果不写这一行代码的话,当n的值等于2的时候,输出结果为:-512i而不是-5+12i 它的作用是,当一个数是整数时要加加号
  • 5.6 详细讲解文件输出

    方法一:

    这两行代码方可解决 PrintStream ps=new PrintStream(new FileOutputStream(“C:\MyEclipse\file\wlllrk.txt”)); System.setOut(ps); //文件输出

    方法二: 1.在你想要运行的程序上右键–> Run As --> Run Configurations 在这里插入图片描述 2.选择Common窗口,设置文件保存路径,以及是否以追加方式保存console输出到文件。

    在这里插入图片描述

    关注
    打赏
    1660730345
    查看更多评论
    0.0636s