BigDecimal 和 BigInteger 和 System
package com.sq.systemTest;
import org.junit.Test;
import java.math.BigDecimal;
import java.math.BigInteger;
/*
其他常用类的使用
1.System: 系统类,系统级的很多属性和控制方法都放置在该类的内部。
该类位于java.lang包。
构造器为 private,所以无法创建该类的对象,也就是无法实例化该类。
其内部的成员变量和成员方法都是 static 的,所以也方便调用。
成员变量:包含 in、out 和 err 三个成员变量,分别代表标准输入流(键盘输入流),
标准输出流(显示器)和标准错误输出流(显示器)
成员方法:
native long currentTimeMillis():
该方法的作用时返回当前的计算机时间,
时间的表达格式为当前计算机时间和GMT时间(格林威治时间)1970年1月1日0时0分0秒所差的毫秒数。
void exit(int status):
该方法的作用是退出程序。其中 status 的值为0代表正常退出,非零代表异常退出。
使用该方法可以在图形界面编程中实现程序的退出功能等。
void gc();
该方法的作用是请求系统进行垃圾回收。至于系统是否立刻回收,
则取决于系统中垃圾回收算法的实现以及系统执行时的情况。
String getProperty(String key):
该方法的作用是获得系统中属性名为 key 的属性对应的值。系统中常见的属性名以及属性的作用如下表所示
属性名 属性说明
java.version Java运行时环境版本
java.home Java安装目录
os.name 操作系统的名称
os.version 操作系统偶的版本
user.name 用户的账户名称
user.home 用户的主目录
user.dir 用户的当前工作目录
2.Math
3.BigInteger 和 BigDecimal
BigInteger:
> java.math包的 ** BigInteger 可以表示不可变的任意精度的整数 ** 。BigInteger提供所有 Java的基本整数操作符的对应物,
并提供 java.lang.Math 的所有相关方法。另外,BigInteger 还提供以下运算:模运算、GCD 计算,指数测试、素数生成、
位操作以及一些其他操作。
> 构造器
BigInteger(String val):根据字符串构建 BigInteger 对象
BigDecimal: 一般的 Float 类和 Double 类可以用来做科学计算或工程计算,但在商业计算中,要求数字精度比较高,
故用到java.math.BigDecimal类
BigDecimal 类支持不可变的、任意精度的有符号十进制定点数。
> 构造器
public BigDecimal(double val)
public BigDecimal(String val)
> 常用方法
public BigDecimal add(BigDecimal augend)
public BigDecimal subtract(BigDecimal subtrahend)
public BigDecimal multiply(BigDecimal multiplicand)
public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)
*/
public class OtherClassTest {
@Test
public void test1(){
String javaVersion = System.getProperty("java.version");// java版本
System.out.println("java的version:"+javaVersion);// java的version:1.8.0_111
String javaHome = System.getProperty("java.home");// java路径
System.out.println("java的home:"+javaHome);// java的home:C:\Java8\jdk1.8.0_111\jre
String osName = System.getProperty("os.name");// 系统名称
System.out.println("os的name:"+osName);// os的name:Windows 10
String osVersion = System.getProperty("os.version");// 系统版本
System.out.println("os的version:"+osVersion);// os的version:10.0
String userName = System.getProperty("user.name");// 系统用户名
System.out.println("user的name:"+userName);// user的name:21115
String userHome = System.getProperty("user.home");// 当前系统用户名路径
System.out.println("user的home:"+userHome);// user的home:C:\Users\21115
String userDir = System.getProperty("user.idr");// 当前贡藕成路径哦
System.out.println("user的dir:"+userDir);// user的dir:null
}
@Test
public void test2(){
BigInteger bi = new BigInteger("1243334536563636335353535353535555353535435241123");
BigDecimal bd = new BigDecimal("12435.351");
BigDecimal bd2 = new BigDecimal("11");
System.out.println(bi);// 1243334536563636335353535353535555353535435241123
// System.out.println(bd.divide(bd2));// 除不尽 报错
System.out.println(bd.divide(bd2,BigDecimal.ROUND_HALF_UP));// 1130.486
System.out.println(bd.divide(bd2,15,BigDecimal.ROUND_HALF_UP));// 1130.486454545454545
}
}