package day02;
import java.math.BigDecimal;
/**
* BigDecimal
* 表示精度更高的浮点型
* java.math.BigDecimal
* 该类可以进行更高精度的浮点运算。
* @author Administrator
*
*/
public class TestBigDecimal {
/**
* @param args
*/
/**
* @param args
*/
public static void main(String[] args) {
/**
* 创建一个BigDecimal实例,可以使用构造方法
* BigDecimal(String numberFormatString)
* 用字符串描述一个浮点数作为参数传入
*/
BigDecimal num1 = new BigDecimal("3.0");//ctrl+shift+o
BigDecimal num2 = new BigDecimal("2.9");
//运算结果依然为BigDecimal表示的结果
BigDecimal result = num1.subtract(num2);//num1 - num2
//输出结果
System.out.println(result);
/**
* 这里需要注意,BigDecimal可以描述比double还要高的精度
* 所以在转换为基本类型时,可能会丢失精度!
*/
float f = result.floatValue();//将结果转换为基本类型float
int i = result.intValue();//转换为int
/**
* BigDecimal可以做加减乘除运算
*
* 这里要注意除法:
* 除法存在结果为无限不循环小数
* 所以,对于除法而言,我们要指定取舍模式,否则会一直计算下去,直到报错位置。
*/
//保留给定精度位数后四舍五入
result = num1.divide(num2,8,BigDecimal.ROUND_HALF_UP);
System.out.println(result);
/**
* add:加法
* multiply:乘法
*/
}
}
package day02;
import java.math.BigInteger;
/**
* 可以保存更长位数的整数
* BigInteger
* java.math.BigInteger
*
* @author Administrator
*
*/
public class TestBigInteger {
public static void main(String[] args) {
/**
* BigInteger同样支持使用描述更长位数的整数的字符串来创建BigInteger
*/
BigInteger num = new BigInteger("1");
// num = new BigInteger(1);
/**
* 这种方式我们可以将一个整数的基本类型转换位BigInteger的实例
*/
num = BigInteger.valueOf(1);
/**
* BigInteger同样支持加减乘除方法
*
* 200的阶乘
*/
for(int i=1;i
1636984416
查看更多评论