数学操作类

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的子类

最新文章

  1. MAC系统设置SSX教程与下载
  2. vCenter Server Appliance
  3. 安装linux操作系统
  4. Asp.Net MVC4入门指南(2):添加一个控制器
  5. shell 在文件名后面添加特定数据
  6. Oracle 11g R2 常用配置与日志的文件位置
  7. 工作中遇到的浏览器差别(就不叫IE6bug了)
  8. fputcsv 导出CSV、Excel DownLoad
  9. 从depth buffer中构建view-space position
  10. Hibernate批量操作(一)
  11. win7 64位安装redis 及Redis Desktop Manager使用(转载的)
  12. localStorage 存取与删除
  13. .deb软件包的安装和软件的卸载
  14. spring boot + vue + element-ui全栈开发入门——前端编辑数据对话框
  15. gradle构建时跳过指定tests
  16. Oracle shrink space
  17. java web 中的WEB-INF文件夹
  18. easyui 下对radio的选中操作
  19. AngularJS与服务器交互(4)
  20. 百度地图隐藏LOGO显示

热门文章

  1. 常用类-Excel-使用Aspose.Cells插件
  2. ASP.NET Core Web 应用程序系列(一)- 使用ASP.NET Core内置的IoC容器DI进行批量依赖注入(MVC当中应用)
  3. Geohash精度和原理
  4. JS MD5 返回二进制格式
  5. Vue的MVVM框架理解
  6. bay——安装_Oracle 12C-单实例-Centos7 -DG.txt
  7. 工作日志,go get -v -x github.com/pebbe/zmq4 失败问题
  8. eNSP仿真软件之利用三层交换机实现VLAN间路由
  9. go语言设计模式之adapter
  10. 机器学习--支持向量机 (SVM)算法的原理及优缺点