Java学习总结:35(数字操作类)
Java的数字操作类
一.Math类
Math类是一个专门用来进行数学计算的操作类,它提供了一系列的数学计算方法。在Math类里面提供的一切方法都是static型方法,所以可以直接由类名称进行调用。
例:观察四舍五入操作
package Project.Study.MathClass;public class Test1 {public static void main(String[]args){System.out.println(Math.round(15.5));System.out.println(Math.round(-15.51));System.out.println(Math.round(-15.4));System.out.println(Math.round(-15.45));System.out.println(Math.round(-15.6));System.out.println(Math.round(15.46));System.out.println(Math.round(-15.5));}
}
//结果:
//16
//-16
//-15
//-15
//-16
//15
//-15
由上程序我们可以发现,只有当操作数据小数位大于0.5才进位,小于或等于0.5则不进位。
例:实现指定位数的四舍五入操作
package Project.Study.MathClass;public class Test2 {public static void main(String[]args){System.out.println(round(-15.678139,2));}/*** 四舍五入操作,可以保留指定长度的小数位数* @param num 要进行四舍五入操作的数字* @param scale 保留的小数位* @return 四舍五入后的数据*/public static double round(double num,int scale){//Math.pow()的方法作用是进行10的N次方的计算return Math.round(num*Math.pow(10.0,scale))/Math.pow(10.0,scale);}
}
//结果:
//-15.68
二.Random类
Random类是一个专门负责产生随机数的操作类。
Random类的常用方法:
No. | 方法 | 类型 | 描述 |
---|---|---|---|
1 | public Random() | 构造 | 创建一个新的Random实例 |
2 | public Random(long seed) | 构造 | 创建一个新的Random实例并且设置一个种子数 |
3 | public int nextInt(int bound) | 普通 | 产生一个不大于指定边界的随机整数 |
例:产生10个不大于100的正整数
package Project.Study.RandomClass;import java.util.Random;public class Test1 {public static void main(String[]args){Random rand=new Random();for(int x=0;x<10;x++){System.out.print(rand.nextInt(100)+"、");}}
}
//结果:
//89、93、9、96、33、76、10、80、41、87、
例:选号系统(36选7)
package Project.Study.RandomClass;import java.util.Random;public class Test2 {public static void main(String[]args){Random rand=new Random();int[] data =new int[7]; //开辟一个7个元素的数组,保存生成数字int foot=0; //数组操作脚标while(foot<7){int t=rand.nextInt(37);//生成一个不大于37的随机数if(!isRepeat(data,t)){ //重复的话就不执行data[foot++]=t; //保存数据}}java.util.Arrays.sort(data);//排序for (int datum : data) {System.out.print(datum + "、");}}/*** 此方法主要是判断是否存在重复内容* @param temp 指的是已经保存的数据* @param num 新生成的数据* @return 如果存在返回true,否则返回false*/public static boolean isRepeat(int[] temp, int num){if(num==0){ //没有必要判断了return true; //直接返回,随后的代码都不再执行}for (int i : temp) {if (i == num) {return true;//表示后面的数据都不再进行判断}}return false;}
}
//结果:
//2、9、12、13、18、28、31、
三.大数字操作类
1.大整数操作类:BigInteger
大整数可以操作无穷大的整型数据。
BigInteger类的基本操作方法:
No. | 方法 | 类型 | 描述 |
---|---|---|---|
1 | public BigInteger(String val) | 构造 | 实例化BigInteger对象 |
2 | public BigInteger add(BigInteger val) | 普通 | 加法操作 |
3 | public BigInteger subtract(BigInteger val) | 普通 | 减法操作 |
4 | public BigInteger multiply(BigInteger val) | 普通 | 乘法操作 |
5 | public BigInteger divide(BigInteger val) | 普通 | 除法操作(不保留余数) |
6 | public BigInteger [] divideAndRemainder(BigInteger val) | 普通 | 除法操作(保留余数),数组第一个元素是商,第二个元素是余数 |
例:进行大整数计算
package Project.Study.BigIntegerClass;import java.math.BigInteger;public class Test1 {public static void main(String[]args){BigInteger bigA=new BigInteger("123456789013213214214"); //大数字ABigInteger bigB=new BigInteger("2324342314132432432"); //大数字BSystem.out.println("加法操作:"+bigA.add(bigB));System.out.println("减法操作:"+bigA.subtract(bigB));System.out.println("乘法操作:"+bigA.multiply(bigB));System.out.println("除法操作:"+bigA.divide(bigB));BigInteger result[]=bigA.divideAndRemainder(bigB);System.out.println("商:"+result[0]+",余数:"+result[1]);}
}
//结果:
//加法操作:125781131327345646646
//减法操作:121132446699080781782
//乘法操作:286955838670331461717477157288896988448
//除法操作:53
//商:53,余数:266646364194295318
2.大小数操作类:BigDecimal
使用BigDecimal类最常进行的操作便是进行准确位数的四舍五入计算。
使用BigDecimal完成四舍五入操作:
No. | 方法及常量 | 类型 | 描述 |
---|---|---|---|
1 | public static final int ROUND_HALF_UP | 常量 | 向上进位 |
2 | public BigDecimal(double val) | 构造 | 传递一个double型数据 |
3 | public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode) | 普通 | 除法操作,参考意义如下:BigDecimal divisor:被除数; int scale:保留的小数位长度;int roundingMode: 进位模式 |
例:完成准确的四舍五入操作
ckage Project.Study.BigDecimalClass;import java.math.BigDecimal;class MyMath{public static double round(double num,int scale){BigDecimal big=new BigDecimal(num); //将数据封装在BigDecimal类中BigDecimal result= big.divide(new BigDecimal(1), scale, BigDecimal.ROUND_HALF_UP); //除法计算return result.doubleValue(); //Number类的方法}
}
public class Test1 {public static void main(String[]args){System.out.println(MyMath.round(15.5,0));System.out.println(MyMath.round(-15.5,0));System.out.println(MyMath.round(1168.4344343,4));}
}
//结果:
//16.0
//-16.0
//1168.4344
相关文章:

STL笔记(5)条款49:学习破解有关STL的编译器诊断信息
STL笔记(5)条款49:学习破解有关STL的编译器诊断信息 条款49:学习破解有关STL的编译器诊断信息 用一个特定的大小定义一个vector是完全合法的, vector<int> v(10); // 建立一个大小为10的vector而string在很多…

执子之手,与子偕老。你同意么?
(1):5岁的时候,我说我爱你。你歪着脑袋,眨着水晶般的大眼睛,疑惑地问我:“什么意思呀?” (2):15岁的时候,我说:"我爱你".你的脸红得像火烧云,头深深地低着,摆弄著衣襟&…

34种墨西哥植物模型 Globe Plants – Bundle 34 Mexican Plants
Globe Plants Bundle 34墨西哥植物(3D模型)包括15种3D树木、灌木和肉质植物,用于南美洲的风景、住宅、花园和一般景观美化目的,特别是墨西哥,具有85种独特的照片逼真质量的3D植物模型,具有多种形式,可用于您的许多场景…

Java学习总结:36(日期处理类)
日期处理类 Date类 Date类常用方法 No.方法类型描述1public Date()构造实例化Date类对象2public Date(long date)构造将数字变为Date类对象,long为日期时间数据3public long getTime()普通将当前的日期时间变为long型 例:取得当前的日期时间 package…
最强的篮球队和马尔可夫模型
打篮球经常遇到这种情况,11个人,分4、4、3共三套,一群人少时间玩,在一个失败的团队的人下阵来填补空缺。因此,我认为,,会不会出现一个最强组合,使得这4个人一直赢比赛呢?…

1677: [Usaco2005 Jan]Sumsets 求和
1677: [Usaco2005 Jan]Sumsets 求和 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 626 Solved: 348[Submit][Status]Description Farmer John commanded his cows to search for different sets of numbers that sum to a given number. The cows use only numbers that ar…

通过CPAN安装Perl模块
第一步,进入CPAN shell: sudo perl -MCPAN -e shell 第一次运行会问你一些问题,一般来说缺省答案就好 第二步,执行安装程序,例如安装LWP:UserAgent cpan>install LWP:UserAgent 还有一个二合一的命令,效…

Python3和Raspberry Pi最全面最直接的课程
在一门课程中学习Python 3基础知识、高级Python、科学Python、Raspberry Pi、硬件和物联网项目 教程获取:Python3和Raspberry Pi最全面最直接的课程 – 云桥网络-CG技术学习平台 你会学到: Python 3基础 Python 3高级概念 Raspberry Pi的设置和使用 Scientific Py…

Java学习总结:37(比较器)
比较器 Arrays类 No.方法类型描述1public static boolean equals(int [] a,int [] a2)普通判断两个数组是否相等,此方法被重载多次,可以判断各种数据类型的数组2public static void fill(int [] a,int val)普通将指定内容填充到数组中,此方…

探究rh6上mysql5.6的主从、半同步、GTID多线程、SSL认证主从复制
http://407711169.blog.51cto.com/6616996/1203973/转载于:https://www.cnblogs.com/zengkefu/p/5042351.html

文字转语音(jacob)
近期项目中出现在离线情况下文字转语音的需求 经过尝试发现jacob还不错 注:只适用于windows系统环境 以下为开发记录: 1.pom.xml中引入jacob.jar <dependency><groupId>com.hynnet</groupId><artifactId>jacob</artifactId&…

log4j配置说明
2019独角兽企业重金招聘Python工程师标准>>> 一.参数意义说明 输出级别的种类 ERROR、WARN、INFO、DEBUG ERROR 为严重错误 主要是程序的错误 WARN 为一般警告,比如session丢失 INFO 为一般要显示的信息,比如登录登出 DEBUG 为程序的调试信息…

Python 无法安装PyAudio问题
一、错误与原因 在Windows上没有用于Python 3.7的轮子(预构建包)(有一个用于Python 2.7和3.4到3.6),因此需要在PC上准备构建环境以使用此包。因为有些软件包很难在Windows上构建,所以找到3.7的轮子更容易一…

7-4 水仙花数
7-4 水仙花数 水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153135333。本题要求编写程序,计算所有N位水仙花数。 输入格式: 输入在一行中给出一个正整数N(3≤N≤7)。…

Unreal Engine4 可视化虚拟现实全流程学习教程
课程目标: 这是一套专门为设计院,三维动画公司、效果图公司、景观规划公司、以及有志于进入这些行业创业的公司和人们量身定制的一套虚拟漫游高级教材。 在这套教学里面,我们能够从头开始了解到一个效果图级别的虚拟漫游是怎么制作出来的&…

用python的numpy作线性拟合、多项式拟合、对数拟合
转自:http://blog.itpub.net/12199764/viewspace-1743145/ 项目中有涉及趋势预测的工作,整理一下这3种拟合方法:1、线性拟合-使用mathimport mathdef linefit(x , y): N float(len(x)) sx,sy,sxx,syy,sxy0,0,0,0,0 for i in range(…

Java中的简单工厂模式(转)
Java中的简单工厂模式 举两个例子以快速明白Java中的简单工厂模式:女娲抟土造人话说:“天地开辟,未有人民,女娲抟土为人。”女娲需要用土造出一个个的人,但在女娲造出人之前,人的概念只存在于女娲的思想里面…

Math.toRadians()与 Math.toDegrees()方法介绍
strictfp 的意思是FP-strict,也就是说精确浮点的意思。在Java虚拟机进行浮点运算时,如果没有指定strictfp关键字时,Java的编译器以及运 行环境在对浮点运算的表达式是采取一种近似于我行我素的行为来完成这些操作,以致于得到的结果往往无法令你满意。因此如果你想让你的浮点运算更加精确, 而且不会因为不同的硬件平台所执行的结果不一致的话,那就请用关键字strictfp。如果你想让你的浮点运算更加精确,而且不会因为不同的硬件平台所执行的结果不一致的话,可以用关键字strictfp.

Linux命令基础6-mkdir命令
mkdir是英文单词make directory的缩写。mkdir就是用来创建路径,一般就是用来创建文件夹的。 语法 mkdir (选项)(参数) 选项 -Z:设置安全上下文,当使用SELinux时有效; -m<目标属性>或--mode<目标属性>建立目录的同时设…

原子性,可见性,有序性详解及DCL单例模式两次校验的目的(拓展懒汉式,饿汉式)
进入以后进行第二次判断,是因为,对于首个拿锁者,它的时段instance肯定为null,那么进入new Singleton()对象创建,而在首个拿锁者的创建对象期间,可能有其他线程同步调用getInstance(),那么它们也会通过if进入到同步块试图拿锁然后阻塞。如果能够保证2,3的顺序那么就不会存在安全问题,但是实际因为JIT和处理器会对代码进行优化重排序,那么可能会2,3的顺序颠倒,那么就有可能会出现一个线程拿到了一个未被初始完成的对象,从而引发安全问题。,那么在这种情况下,会出现多个实例对象。

3ds Max中的V-Ray学习
时长3h 30m 大小解压后:2.73G 包含项目文件 1280X720 MP4 语言:英语中英文字幕(根据原英文字幕机译更准确) 3ds Max中的V-Ray简介:官方V-Ray导师 云桥网络 获取课程:3ds Max中的V-Ray学习 Introduction To V-Ray in 3…

7-5 二分法求多项式单根 (20分)
二分法求函数根的原理为:如果连续函数f(x)在区间[a,b]的两个端点取值异号,即f(a)f(b)<0,则它在这个区间内至少存在1个根r,即f( r )0。 二分法的步骤为: 检查区间长度,如果小于给定阈值,则停…

JAVA的instanceOf什么时候用
我个人理解的一个应用场合就是,当你拿到一个对象的引用时(例如参数),你可能需要判断这个引用真正指向的类。所以你需要从该类继承树的最底层开始,使用instanceof操作符判断,第一个结果为true的类即为引用真…

解决谷歌浏览器在非https下限制获取多媒体对象(音视频)的解决方式
1、浏览器输入:chrome://flags/ 2、输入你要允许的域名地址或ip端口地址(如下图)

After Effects CS4 期末考试卷
AECS4考试A卷转载于:https://blog.51cto.com/hnxdd/1593985

数据图表之圆柱图
需求是这样的,需要一个圆柱实现展示内存的占用变化。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>.column{position: relative;width: 300px;height:…

虚幻引擎5–环境设计学习教程
时长:1h 12m |视频:. MP4 1280720,30 fps(r) |音频:AAC,48000 Hz,2ch |大小解压后:1.08G 含课程文件 语言:英语中英文字幕(根据原英文字幕机译更准确) 在这节课中,你将学习如何在虚幻引擎5中从…

Java学习总结:38(正则表达式)
正则表达式 正则表达式本质上是一种字符串操作语法规则,利用它我们能更加灵活地实现字符串的匹配、拆分、替换等操作。 正则标记 所有的正则表达式支持的类都定义在java.util.regex包里面。这个包里面定义了如下两个主要的类: 1.Pattern类:…

PHP Multipart/form-data remote dos Vulnerability
catalog 1. Description 2. Analysis 1. Description PHP is vulnerable to a remote denial of service, caused by repeatedly allocate memory、concatenate string、copy string and free memory when PHP parses header areas of body part of HTTP request with multipar…

HTTP的KeepAlive是开启还是关闭?
转自:http://blog.csdn.net/gaogaoshan/article/details/38580013 1、KeepAlive的概念与优势 HTTP的KeepAlive就是浏览器和服务端之间保持长连接,这个连接是可以复用的。当客户端发送一次请求,收到相应内容后,这个连接会保持一段时…