概述
package javaObject;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.math.RoundingMode;
public class javaMath {
public static void main(String[] args) {
/*
* BigInteger用于表示任意大小的整数
* 把BigInteger转换成基本类型
* 如果BigInteger表示的范围超过了基本类型的范围,转换时将丢失高位信息,即结果不一定是准确的。
* 如果需要准确地转换成基本类型,可以使用intValueExact()、longValueExact()等方法,在转换时如果超出范围,将直接抛出ArithmeticException异常。
*/
System.out.println(Math.pow(99999, 5));
BigInteger maxNum = new BigInteger("99999");
BigInteger powMaxNum = maxNum.pow(5);
System.out.println(powMaxNum);
System.out.println(powMaxNum.intValue());
System.out.println(powMaxNum.shortValue());
System.out.println(powMaxNum.floatValue());
System.out.println(powMaxNum.doubleValue());
System.out.println(powMaxNum.longValue());
// System.out.println(powMaxNum.intValueExact()); // 抛出异常 BigInteger out of int range
/*
* BigDecimal可以表示一个任意大小且精度完全准确的浮点数
* BigDecimal用于表示精确的小数,常用于财务计算
* 比较BigDecimal的值是否相等,必须使用compareTo()而不能使用equals()
*
*
*
*/
System.out.println();
BigDecimal decimalValue1 = new BigDecimal("99999.80100");
BigDecimal decimalValue2 = new BigDecimal("122.984558");
System.out.println(decimalValue1 + ", " + decimalValue2);
System.out.println("整数:" + decimalValue1.intValue() + ", " + decimalValue2.intValue());
System.out.println("小数位数:" + decimalValue1.scale() + ", " + decimalValue2.scale());
System.out.println(decimalValue1 + ", 去掉小数末尾0:" + decimalValue1.stripTrailingZeros());
System.out.printf("四舍五入:%sn", decimalValue2.setScale(4, RoundingMode.HALF_UP));
System.out.printf("截断:%sn", decimalValue2.setScale(4, RoundingMode.DOWN));
// 比较
System.out.println("错误比较:" + decimalValue1.equals(decimalValue2));
System.out.println("正确比较【1大于,0等于,-1小于】:" + decimalValue2.compareTo(decimalValue1));
// 计算
BigDecimal[] value = decimalValue1.divideAndRemainder(decimalValue2);
System.out.println("商:" + value[0] + ", 余数:" + value[1]);
}
}
最后
以上就是个性树叶为你收集整理的Java 学习之BigInteger和BigDecimal的全部内容,希望文章能够帮你解决Java 学习之BigInteger和BigDecimal所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复