biginteger和long精度_解决BigDecimal转long丢失精度的问题

本文介绍了BigDecimal在转换为long时可能出现的精度丢失问题,并提供了解决方案。讨论了BigDecimal、BigInteger的使用场景和特性,以及不同类型之间的转换,强调了在进行数据类型转换时需要注意的精度和损失问题。
摘要由CSDN通过智能技术生成

我就废话不多说了,大家还是直接看代码吧~

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方法比较两个大

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值