Java常用类:BigDecimal类

1|0Java常用类:BigDecimal类


1|1BigDecimal

  • 位于 java.math 包中

  • 作用:精确计算浮点数

  • 创建方式:例如BigDecimal bd = new BigDecimal("1.0");

  • 常用方法:

    • add();
    • subtract();
    • multiply();
    • divide();
  • 示例:

    import java.math.BigDecimal; public class Demo01 { public static void main(String[] args) { //未使用BigDecimal double d1 = 1.0; double d2 = 0.9; System.out.println(d1-d2); double result = (1.4-0.5)/0.9; System.out.println(result); System.out.println("----------"); //使用BigDecimal BigDecimal bd1 = new BigDecimal("1.0");//一定要用字符串:精确 BigDecimal bd2 = new BigDecimal("0.9"); //减法 BigDecimal r1 = bd1.subtract(bd2);//subtract();是BigDecimal的减法 System.out.println("bd1-bd2="+r1); //加法 BigDecimal r2 = bd1.add(bd2);//add();是BigDecimal的加法 System.out.println("bd1+bd2="+r2); //乘法 BigDecimal r3 = bd1.multiply(bd2);//multiply();是BigDecimal的乘法 System.out.println("bd1*bd2="+r3); //除法 BigDecimal r4 = bd2.divide(bd1);//divide();是BigDecimal的除法 System.out.println("bd2/bd1="+r4); //BigDecimal的 (1.4-0.5)/0.9 BigDecimal result1 = new BigDecimal("1.4") .subtract(new BigDecimal("0.5")) .divide(new BigDecimal("0.9")); System.out.println("(1.4-0.5)/0.9="+result1); } }

    输出

    0.09999999999999998 0.9999999999999999 ---------- bd1-bd2=0.1 bd1+bd2=1.9 bd1*bd2=0.90 bd2/bd1=0.9 (1.4-0.5)/0.9=1

除法拓展:

进行除法运算时,如果不能准确的计算出结果时需要指定保留的位数和取舍方式。

  • 除法divide(BigDecimal bd,int scal,RoundingMode mode);

  • 参数 scal :指定精确到小数点后几位

  • 参数 mode :

    • 指定小数部分的取舍模式,通常采用四舍五入的模式
    • 取值为RoundingMode.HALF_UP
  • 示例:

    import java.math.BigDecimal; import java.math.RoundingMode; public class Demo02 { public static void main(String[] args) { BigDecimal result = new BigDecimal("10") .divide(new BigDecimal("3"), 2, RoundingMode.HALF_UP); System.out.println("10/3="+result+"(四舍五入,保留两位小数)"); } }

    输出

    10/3=3.33(四舍五入,保留两位小数)

__EOF__

本文作者userName
本文链接https://www.cnblogs.com/dt746294093/p/14668434.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   D..T  阅读(91)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
点击右上角即可分享
微信分享提示