我就废话不多说了,大家还是直接看代码吧~
public static void main(String[] args) {
BigDecimal asdBigDecimal = new BigDecimal(56.33347);
long sad = asdBigDecimal.longValue();
double asda = asdBigDecimal.doubleValue();
System.out.println(sad);
System.out.println(asda);
}
运行结果:
56
56.33347
而且BigDecimal.longValue()还会自动四舍五入,不想舍去小数点的朋友要用doubleValue()
补充知识:BigDecimal与int、long之间的相互转换及基本数据类型知识掌握
(Java提供了两个用于高精度计算的类:BigInteger和BigDecimal。这两个类包含的方法、提供的操作与对基本类型所能执行的操作相似,只不过是以方法调用方式取代运算符方式来实现。等于是用速度换取了精度。 BigInteger支持任意精度的整数,在运算中可以准确地表示任何大小的整数值,而不会丢失任何信息。BigDecimal支持任何精度的定点数,可以用它进行精确的货币计算。
它们都扩展Number类且实现Comparable接口,可以使用new BigInteger(String)或new BigDecimal(String)来创建实例,使用add,substract,multiple,divide和remainder方法完成算数运算,使用compareTo方法比较两个大