数学操作类

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 数学操作类的更多相关文章

  1. JAVA文件操作类和文件夹的操作代码示例

    JAVA文件操作类和文件夹的操作代码实例,包括读取文本文件内容, 新建目录,多级目录创建,新建文件,有编码方式的文件创建, 删除文件,删除文件夹,删除指定文件夹下所有文件, 复制单个文件,复制整个文件 ...

  2. Java大数操作类

    Java的大数操作分为BigInteger和BigDecimal,但这两给类是分开使用的,有时候在编程的时候显得略微繁琐,现在编写了一个将二者合二为一的大数操作类. 大数操作类代码如下: packag ...

  3. Java文件操作类效率对比

    前言 众所周知,Java中有多种针对文件的操作类,以面向字节流和字符流可分为两大类,这里以写入为例: 面向字节流的:FileOutputStream 和 BufferedOutputStream 面向 ...

  4. 并发库应用之二 & Java原子性操作类应用

    Java5的线程并发库中,提供了一组atomic class来帮助我们简化同步处理.基本工作原理是使用了同步synchronized的方法实现了对一个long, integer, 对象的增.减.赋值( ...

  5. Java数据库操作类演示

    只在mysql上测试过,不知道算不算好使​1. [代码][Java]代码     package org.load.demo; import java.io.IOException;import ja ...

  6. Java 数据库操作类

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...

  7. Java集合操作类Collections的一些常用方法

    public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); ...

  8. Java数学相关工具类

    1.求百分比 public class Test1 { public static String myPercent(int y, int z) { String baifenbi = "& ...

  9. Java数组操作类

    最近又重新在看慕课网的数据结构,然后把示例代码整理一下. public class Array<E> { private E[] data; private int count = 0; ...

随机推荐

  1. Razor_01 第一个应用程序

    自己开始从头深造 自己看了一下,开头真的不适合初学者,没有重点,对不起各位了 . 但你可以在5 分钟以后看,对于初学者还时有深大的用处的 链 接: https://pan.baidu.com/s/1V ...

  2. MyBatis的事物管理和缓存

    MyBatis的事物 事物的概念 在Java语言数据库框架中,数据库的事务管理都是非常重要的. 每个业务逻辑都是由一系列数据库访问完成的,这些访问可能修改多条数据记录,这一系列修改应该是一个整体,绝对 ...

  3. Django 注意知识点(一)

    本篇概述 Django Admin后台显示 多对多字段(如何) Django 模板 显示 多对多字段(如何) Django 将表单中上传的多对多字段存入数据库 (如何)   Django 上传文件 ( ...

  4. 个人项目开源之c++基于epoll实现高并发游戏盒子(服务端+客户端)源代码

    正在陆续开源自己的一些项目 此为c++实现高并发的游戏盒子,平台问题需要迁移重构,所以有一些遗留问题,客户端异常断开没有处理,会导致服务器崩溃,还有基于快写代码编程平台实现的小程序切换,线程读写缓存没 ...

  5. 031.[转] 从类状态看Java多线程安全并发

    从类状态看Java多线程安全并发 pphh发布于2018年9月16日 对于Java开发人员来说,i++的并发不安全是人所共知,但是它真的有那么不安全么? 在开发Java代码时,如何能够避免多线程并发出 ...

  6. Shell—输入输出重定向

    大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回​​到您的终端.一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端.同样,一个命令通常将其输出写入到标准输出,默 ...

  7. [PHP] pmap可以查看进程占用内存的详细情况

    pmap后面跟进程id,就可以查看进程的详细情况了,例如下面php的进程 可以看到php扩展占用内存的情况,方便进行查询问题 00007fb3fa4bf000 44K r-x-- /usr/lib64 ...

  8. windows下切换Python运行环境。

    1.首先确保你的系统里已经安装了Conda,打开命令行窗口,执行命令:conda --version 2.查看你的系统当前已有的Python环境,执行命令:conda info --envs,从图中我 ...

  9. 纯CSS实现自动轮播,CSS变量的定义与使用,计算属性的使用

    先来看一下实现的效果: 实现原理: HTML中使用ul>li存放图片 CSS使用CSS3的animation来完成动画 <!-- HTML --> <section class ...

  10. Python连载50-贪婪匹配、XPath介绍

    一.贪婪和非贪婪 1.贪婪:尽可能多的匹配,(*)表示贪婪匹配 2.非贪婪:找到符合条件的最小内容即可,(?)表示非贪婪 3.正则默认使用贪婪匹配 import re title = u"& ...