欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > 【Java基础面试题042】什么是Java的BigDecimal类?

【Java基础面试题042】什么是Java的BigDecimal类?

2024/12/26 7:53:53 来源:https://blog.csdn.net/lklalmq/article/details/144706707  浏览:    关键词:【Java基础面试题042】什么是Java的BigDecimal类?

回答重点

BigDecimal是Java中提供的一个用于高精度计算的类,属于java.math包。它提供对浮点数和定点数的精确控制,特别适用于金融和科学计算等有高精度需求的领域

主要特点:

  • 高精度:BigDecimal可以处理任意精度的数值,而不像float和double存在精度限制
  • 不可变性:BigDecimal是不可变类,所有的算术运算都会返回新的BigDecimal对象,而不会修改原有对象(所以要注意性能问题)
  • 丰富的功能:提供了加减乘除取余舍入等多种计算方法,并支持各种舍入模式

扩展知识

通常情况下,大部分需要浮点数精确运算结果的业务场景,涉及到钱的场景,都是通过BigDecimal来做的

《阿里巴巴Java开发手册》:阿里巴巴Java开发手册 · Autism_Btkrsr/Blog_md_to_pdf - 码云 - 开源中国 (gitee.com)

手册中提到:浮点数之间的等值判断,基本数据类型不能用 == 来比较,包装数据类型不能用equals来判断

如何创建BigDecimal对象?

BigDecimal bd1 = new BigDecimal("123.45"); // 推荐,字符串没有精确丢失
BigDecimal bd2 = new BigDecimal(123.45); // 不推荐,double和float会引入精度问题
BigDecimal bd3 = BigDecimal.valueOf(123.45); // 推荐

四舍五入模式

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com