Java 数学操作类
数学操作类
Math类 数学计算操作类
类属性值
Math.E
^
Math.PI
圆周率
类方法
Math类中,一切方法都是 static 型,因为Math类中没有普通属性。
round() 方法
- 四舍五入,返回最接近int值的参数
public static int round(float a)
abs() 方法
- 返回绝对值
public static double abs(double a)
max() 方法
- 返回int值中较大的那个值
public static int max(int a , int b)
Random类 随机操作类
- java.util 包中
Random() 构造
- 创建一个新的随机数生成器
next() 方法
- 生成下一个伪随机数
protected int next (int bits)
nextInt() 方法
返回下一个伪随机数
nextInt(int n)
- 返回 小于 n之内的随机数
36选7 彩票器实例
import java.util.Random;
public class TestDemo {
public static void main(String [] args) throws CloneNotSupportedException {
Random ran = new Random();
int data[] = new int [7] ; //开辟一个数组
int foot = 0 ;
while (foot < 7) {
int t = ran.nextInt(37); // 随机生成返回一个不大于37的数
if (!isRepeat(data,t)) { // 查重
data[foot ++] = t ;
}
}
java.util.Arrays.parallelSort(data);
for (int x = 0 ; x < data.length ; x ++) {
System.out.print(data[x] + "\t");
}
}
public static boolean isRepeat(int temp[] , int num) { // 查重
if (num == 0 ) {
return true ;
}
for (int x = 0 ; x < temp.length ; x ++) {
if (temp[x] == num) {
return true ;
}
}
return false;
}
}
大数字操作类
BigInteger 类
import java.math.BigInteger;
import java.util.Random;
public class TestDemo {
public static void main(String [] args) throws CloneNotSupportedException {
BigInteger big_A = new BigInteger("12345678912345678912356789");
BigInteger big_B = new BigInteger("218372948729847298347289") ;
System.out.println("加法操作 >>> " + (big_A.add(big_B)));
System.out.println("减法操作 >>> " + (big_A.subtract(big_B)));
System.out.println("乘法操作 >>> " + (big_A.multiply(big_B)));
System.out.println("除法操作 >>> " + (big_A.divide(big_B)));
}
}
- 运行结果:
加法操作 >>> 12564051861075526210704078
减法操作 >>> 12127305963615831614009500
乘法操作 >>> 2695962308160819899591376721692771747399598895021
除法操作 >>> 56
BigDecimal : 大浮点数
- BigInteger只可以保存整数,不可以保存小数(浮点数),而BigDecimal可以保存小数(浮点)数据;在BigDecimal类提供如下构造:
public BigDecimal(String val) ;
public BigDecimal(double val) ;
Math.round()方法虽然实现四舍五入操作,但是,小数在计算的时候会自动的四舍五入
除法操作
public BigDecimal divide(BigDecimal divisor , int scale , int round);
BigDecimal divsor : 被除数
int scale:保留的小数位
int round:进位模式
实例:*【重要内容】
import java.math.BigDecimal;
class MyMath {
/**
* 实现准确的位数的四舍五入操作
* @param num 进行四舍五入操作的数字
* @param scale 要保留的小数位数
* @return 处理后的数据
*/
public static double round(double num , int scale) {
BigDecimal bigA = new BigDecimal(num) ;
BigDecimal bigB = new BigDecimal(1) ;
// ROUND_HALF_UP:向“最接近的”数字舍入
// doubleValue() : 转 double 型数据
return bigA.divide(bigB, scale , BigDecimal.ROUND_HALF_UP).doubleValue() ;
}
}
public class TestDemo {
public static void main(String [] args) {
System.out.println(MyMath.round(19.224532 , 2));
System.out.println(MyMath.round(3.1465926 , 2));
}
}
总结:
- Math类要清楚round()方法的缺陷
- Random类生成随机数
- 如果处理大量的数据量,则使用 BigInteger和BigDecimal ,两个类都属于Number的子类
Java 数学操作类的更多相关文章
- JAVA文件操作类和文件夹的操作代码示例
JAVA文件操作类和文件夹的操作代码实例,包括读取文本文件内容, 新建目录,多级目录创建,新建文件,有编码方式的文件创建, 删除文件,删除文件夹,删除指定文件夹下所有文件, 复制单个文件,复制整个文件 ...
- Java大数操作类
Java的大数操作分为BigInteger和BigDecimal,但这两给类是分开使用的,有时候在编程的时候显得略微繁琐,现在编写了一个将二者合二为一的大数操作类. 大数操作类代码如下: packag ...
- Java文件操作类效率对比
前言 众所周知,Java中有多种针对文件的操作类,以面向字节流和字符流可分为两大类,这里以写入为例: 面向字节流的:FileOutputStream 和 BufferedOutputStream 面向 ...
- 并发库应用之二 & Java原子性操作类应用
Java5的线程并发库中,提供了一组atomic class来帮助我们简化同步处理.基本工作原理是使用了同步synchronized的方法实现了对一个long, integer, 对象的增.减.赋值( ...
- Java数据库操作类演示
只在mysql上测试过,不知道算不算好使1. [代码][Java]代码 package org.load.demo; import java.io.IOException;import ja ...
- Java 数据库操作类
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...
- Java集合操作类Collections的一些常用方法
public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); ...
- Java数学相关工具类
1.求百分比 public class Test1 { public static String myPercent(int y, int z) { String baifenbi = "& ...
- Java数组操作类
最近又重新在看慕课网的数据结构,然后把示例代码整理一下. public class Array<E> { private E[] data; private int count = 0; ...
随机推荐
- Windows7中启动Mysql服务时提示:拒绝访问的一种解决方式
场景 在Windows7中打开任务管理器--服务下 找到mysql的服务点击启动时提示: 拒绝访问 这是因为权限不够导致的不能启动sql服务. 点击 任务管理器右下角的服务 在这里就可以正常启动服务
- Java开发人员必备十大工具
Java世界中存在着很多工具,从著名的IDE(例如Eclipse,NetBeans和IntelliJ IDEA)到JVM profiling和监视工具(例如JConsole,VisualVM,Ecli ...
- JavaScript基础6
计时器 setInterval() 按照指定周期来调用函数或计算表达式 以毫秒计算 语法 setInterval(code,millisec[,“lang”]) code 要调用的函 ...
- gradle+shell实现自动系统签名
前言 有时候我们的应用需要系统级的权限来实现一些功能(如静默安装),这时候需要给应用打上系统签名,常规操作打包apk,解压apk,删除META-INF中CERT.RSA和 CERT.SF,然后压缩,用 ...
- GO 全面解析 json tag 篇
在处理json格式字符串的时候,经常会看到声明struct结构的时候,属性的右侧还有反引号括起来的内容.形如: type User struct { UserId int `json:"us ...
- 实时同步sersync实战
目录 实时同步sersync实战 什么是实时同步 sersync和rsync+inotify对比 sersync项目实战 安装rsync的服务端(backup) NFS服务端部署sersync 实时同 ...
- oracle12.2RAC之OGG安装配置(一)
前面配置了ACFS用于ogg目录. 上传软件并解压安装: unzip 123014_fbo_ggs_Linux_x64_shiphome.zip cd fbo_ggs_Linux_x64_shipho ...
- 微信小程序之上传图片和图片预览
这几天一直负责做微信小程序这一块,也可以说是边做边学习吧,把自己做的微信小程序的一些功能分享出来,与大家探讨一下,相互学习相互进步. 先看下效果图 只写了一下效果样式的话希望大家不要太在意,下面马路杀 ...
- android 获得一些设备信息的静态函数
1.Brand,IMEI,DeviceOS,DeviceFactoryTime public static String getDeviceBrand(Context context) { Strin ...
- android-ramdisk.img分析、recovery.img&boot.img执行过程【转】
一.ramdisk介绍 ramdisk通过直面意思就大概能理解意思,ram disk虚拟内存盘,将ram模拟成硬盘来使用的文件系统.对于传统的磁盘文件系统来说,这样做的好处是可以极大提高文件访问速度: ...