网站首页 > java教程 正文
7.3.3 Math类
Java提供了最简单加、减、乘、除、取模等基本运算。同时还提供了Math类来进行更复杂的数学运算。
static abs(Xxx xx):将基本数据类型转换成其绝对值返回。
static max(Xxx a,Xxx b):返回两个值中较大的一个
static min(Xxx a,Xxx b):返回两个值中较小的一个
static pow(double a,double b):返回第一个参数的第二个参数次幂的值。
static double random():返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
public static void main(String[] args) throws Exception{
//取某一个范围内的随机数
for(int i=0;i<5;i++){
System.out.println((int)(Math.random()*100));
}
}
一个小例题:
如何取得给定任意范围内的随机数?
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int start = scan.nextInt();
int end = scan.nextInt();
System.out.println(getRan(start,end));
}
public static int getRan(int start,int end){
int number = (int)(Math.random()*(end-start+1)+start);
return number;
}
7.3.4 Random类
Random类专门用于生成一个随机数。主要方法为:nextXxx(Xxx xxx)
public Random():创建一个新的随机数生成器。
Random(long seed):使用单个 long 种子创建一个新的随机数生成器。给定种子后,每次得到的随机数是相同的。
static Xxx nextInt(int n):返回该类型的一个随机数。返回的范围是[0,n)范围内的随机数。
static Xxx nextInt():返回该类型的一个随机数。返回的范围是int范围内的随机数。
7.3.5 BigDecimal类
double、float浮点数在进行数据基本运算时会发生数据丢失现象,这种情况不仅仅是在Java语言中,在其他语言中同样存在。例如:
public static void main(String[] args) throws Exception{
System.out.println(0.05+0.01);
System.out.println(1.0-0.42);
System.out.println(4.015*100);
System.out.println(123.3/100);
}
Java提供了BigDecimal类,用于处理进行基本运算发生的数据丢失问题。
使用BigDecimal构造器创建对象时,建议优先使用String类型对象作为参数传入进行初始化。
举例: BigDecimal decimal = new BigDecimal(“12.5”);
BigDecimal类提供了add()、subtract()、multiply()、divide()、pow(int n)、等方法对精确浮点数进行常规算术运算。
举例1:
public static void main(String[] args) throws Exception{
BigDecimal b1 = new BigDecimal("0.05");
BigDecimal b2 = new BigDecimal("0.01");
System.out.println(b1.add(b2).floatValue());
b1 = new BigDecimal("1.0");
b2 = new BigDecimal("0.42");
System.out.println(b1.subtract(b2).floatValue());
b1 = new BigDecimal("4.015");
b2 = new BigDecimal("100");
System.out.println(b1.multiply(b2).floatValue());
b1 = new BigDecimal("123.3");
b2 = new BigDecimal("100");
System.out.println(b1.divide(b2).floatValue());
}
猜你喜欢
- 2024-10-24 Bigo的Java面试,我挂在了第三轮技术面上...
- 2024-10-24 纯干货|盘点Java常见的30个误区与细节
- 2024-10-24 JAVA中红黑树(javahashmap红黑树)
- 2024-10-24 一文让你理解java中的类加载器(java类加载器的作用)
- 2024-10-24 Java高级进阶-从计算机底层解析左移、右移、无符号右移
- 2024-10-24 终于有人把Git最火Java全套详细笔记(吐血放出)资料给分享出来了
- 2024-10-24 【算法题】1749. 任意子数组和的绝对值的最大值
- 2024-10-24 Java 的流程控制是什么样子的(java中的流程控制语句有哪些)
- 2024-10-24 Java常用内置函数(java内部类怎么调用)
- 2024-10-24 Java编程——数据库两大神器:索引和锁
你 发表评论:
欢迎- 最近发表
-
- 一招解决vscode报java插件版本不一致以及相关缓存引起的问题
- 关于Java 8版本的理解(java中的接口怎么理解)
- Java 9 到 Java 16 的版本演进:一次模块化革命和语言的持续进化
- 如何选择合适的Java版本(如何选择jdk版本)
- 晚会互动小游戏(晚会节目互动小游戏)
- 基于JavaSwing的象棋游戏系统java休闲游戏jsp源代码Mysql
- Java 猜字母游戏!会写会玩才是真本事!
- 基于JavaSwing的贪吃蛇大作战java休闲游戏jsp源代码mysql
- Java & Python 康威生命游戏 - 命令行版
- 高玩随机种子无损速通《我的世界》10分钟不到刷新世界纪录
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)