<span>Java-数字相关类</span>

Java数字类
1.整数 Short,Int,Long
2.浮点数 Float,Double
3.大数类 BigInteger(大整数),BigDecimal(大浮点数)
4.随机数类 Random
5.工具类 Math

BigInteger类的一些操作用法如下:

BigInteger:支持无限大的整数运算

package cn.edu.xjdx.zzk;

import java.math.BigInteger;

public class BigIntegerTest {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
        BigInteger b1=new BigInteger("123456789");//声明BigInteger对象
        BigInteger b2=new BigInteger("987654321");
        System.out.println("b1:"+b1 + ", b2:"+b2);
        System.out.println("加法操作: "+b2.add(b1));
        System.out.println("减法操作:"+b2.subtract(b1));//执行b2-b1操作
        System.out.println("乘法操作:"+b2.multiply(b1));
        System.out.println("除法操作:"+b2.divide(b1));//执行b2/b1操作
        System.out.println("最大数:"+b2.max(b1));
        System.out.println("最小数:"+b2.min(b1));
        BigInteger result[]=b2.divideAndRemainder(b1);//求出余数的除法操作
        System.out.println("商是"+ result[0] +"  余数是"+result[1]);
        System.out.println("等价性是:"+ b1.equals(b1));
        int flag=b1.compareTo(b2);
        if(flag==-1)
        	System.out.println("比较操作:b1<b2");
        else if(flag==0)
        	System.out.println("比较操作:b1==b2");
        else
        	System.out.println("比较操作:b1>b2");
	}

}

操作结果如下图:

关于Java中的Integer的==和equals的区分和使用,可以参考这篇博文:https://www.cnblogs.com/mrhgw/p/10449391.html

BigDecimal类的一些操作用法如下:

BigDecimal:支持无限大的浮点数运算
BigDecimal中divide方法详解:
首先说一下用法,BigDecimal中的divide主要就是用来做除法的运算。其中有这么一个方法.

public BigDecimal divide(BigDecimal divisor,int scale, int roundingMode)

第一个参数是除数,第二个参数代表保留几位小数,第三个代表的是使用的模式。

BigDecimal.ROUND_DOWN:直接省略多余的小数,比如1.28如果保留1位小数,得到的就是1.2

BigDecimal.ROUND_UP:直接进位,比如1.21如果保留1位小数,得到的就是1.3

BigDecimal.ROUND_HALF_UP:四舍五入,2.35保留1位,变成2.4

BigDecimal.ROUND_HALF_DOWN:四舍五入,2.35保留1位,变成2.3

后边两种的区别就是如果保留的位数的后一位如果正好是5的时候,一个舍弃掉,一个进位。

示例代码如下:

package cn.edu.xjdx.zzk;

import java.math.BigDecimal;

public class BigDecimalTest {

	@SuppressWarnings("deprecation")
	public static void main(String[] args) {
		// TODO 自动生成的方法存根
        BigDecimal b1=new BigDecimal("123456789.987654321");
        BigDecimal b2=new BigDecimal("987654321.123456789");
        System.out.println("b1: "+b1+"  b2: "+b2);
        System.out.println("加法操作: "+b2.add(b1));
        System.out.println("减法操作:"+b2.subtract(b1));//执行b2-b1操作
        System.out.println("乘法操作:"+b2.multiply(b1));
        //需要指定位数,防止无限循环,或者包含在try-catch中
        System.out.println("除法操作:"+b2.divide(b1, 10, BigDecimal.ROUND_HALF_UP));//执行b2/b1操作
        System.out.println("最大数:"+b2.max(b1));
        System.out.println("最小数:"+b2.min(b1));
        int flag=b1.compareTo(b2);
        if(flag==-1)
        	System.out.println("比较操作:b1<b2");
        else if(flag==0)
        	System.out.println("比较操作:b1==b2");
        else
        	System.out.println("比较操作:b1>b2");
        System.out.println("=====================================");
        //尽量采用字符串赋值
        System.out.println(new BigDecimal("2.3"));
        System.out.println(new BigDecimal(2.3));
        System.out.println("=====================================");
        BigDecimal num1=new BigDecimal("10");
        BigDecimal num2=new BigDecimal("3");
        //需要指定位数,防止无限循环,或者包含在try-catch中
        BigDecimal num3=num1.divide(num2, 3, BigDecimal.ROUND_HALF_UP);
        System.out.println(num3);
	}
    
}

运行结果如下图:

随机数类

  • Random随机数
    -nextInt()返回一个随机int
    -nextInt(int a)返回一个[0,a)之间的随机int
    -nextDouble返回一个[0.0,1.0)之间的double,含 0.0 而不包含 1.0
    -ints方法批量返回谁技术数组

  • Math.random返回一个0.0到1.0的double,即[0.0,1.0),含 0.0 而不包含 1.0

数字工具类

  • Java,lang,Math
  • 绝对值函数abs
  • 对数函数log
  • 比较函数max,min
  • 幂函数pow
  • 四舍五入函数round等
  • 向下取整floor
  • 向上取整ceil
    示例代码如下:
package cn.edu.xjdx.zzk;

public class MathTest {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
        System.out.println(Math.abs(-5));//绝对值
        System.out.println(Math.max(-5, -8));//最大值
        System.out.println(Math.pow(-5, 2));//求幂
        System.out.println(Math.round(3.5));//四舍五入
        System.out.println(Math.ceil(3.5));//向上取整
        System.out.println(Math.floor(3.5));//向下取整
	}

}

运行结果如下:

全部评论

相关推荐

刚刷到字节跳动官方发的消息,确实被这波阵仗吓了一跳。在大家还在纠结今年行情是不是又“寒冬”的时候,字节直接甩出了史上规模最大的转正实习计划——ByteIntern。咱们直接看几个最硬的数,别被花里胡哨的宣传词绕晕了。首先是“量大”。全球招7000多人是什么概念?这几乎是把很多中型互联网公司的总人数都给招进来了。最关键的是,这次的资源分配非常精准:研发岗给了4800多个Offer,占比直接超过六成。说白了,字节今年还是要死磕技术,尤其是产品和AI领域,这对于咱们写代码的同学来说,绝对是今年最厚的一块肥肉。其次是大家最关心的“转正率”。官方直接白纸黑字写了:整体转正率超过50%。这意味着只要你进去了,不划水、正常干,每两个人里就有一个能直接拿校招Offer。对于2027届(2026年9月到2027年8月毕业)的同学来说,这不仅是实习,这简直就是通往大厂的快捷通道。不过,我也得泼盆冷水。坑位多,不代表门槛低。字节的实习面试出了名的爱考算法和工程实操,尤其是今年重点倾斜AI方向,如果你简历里有和AI相关的项目,优势还是有的。而且,转正率50%也意味着剩下那50%的人是陪跑的,进去之后的考核压力肯定不小。一句话总结:&nbsp;27届的兄弟们,别犹豫了。今年字节这是铁了心要抢提前批的人才,现在投递就是占坑。与其等到明年秋招去千军万马挤独木桥,不如现在进去先占个工位,把转正名额攥在手里。
喵_coding:别逗了 50%转正率 仔细想想 就是转正与不转正
字节7000实习来了,你...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务