BigDecima

简介: BigDecima

BigDecimal 是 Java 提供的一个用于处理任意精度小数的类。与 doublefloat 类型相比,BigDecimal 可以准确地表示和计算大范围的小数值,避免了浮点数运算时的精度损失。

下面是一些常用的 BigDecimal 方法和操作:

1.创建 BigDecimal 对象:

BigDecimal bigDecimal1 = new BigDecimal("123.456");
BigDecimal bigDecimal2 = BigDecimal.valueOf(789.012);

2.基本运算符和方法:

  • 加法:add(BigDecimal augend)
  • 减法:subtract(BigDecimal subtrahend)
  • 乘法:multiply(BigDecimal multiplicand)
  • 除法:divide(BigDecimal divisor, int scale, RoundingMode roundingMode)
  • 求余:remainder(BigDecimal divisor)
  • 幂运算:pow(int exponent)
  • 绝对值:abs()
  • 比较:compareTo(BigDecimal val)
BigDecimal sum = bigDecimal1.add(bigDecimal2);
BigDecimal difference = bigDecimal1.subtract(bigDecimal2);
BigDecimal product = bigDecimal1.multiply(bigDecimal2);
BigDecimal quotient = bigDecimal1.divide(bigDecimal2, 10, RoundingMode.HALF_UP);
BigDecimal remainder = bigDecimal1.remainder(bigDecimal2);
BigDecimal power = bigDecimal1.pow(2);
BigDecimal absolute = bigDecimal1.abs();
int comparison = bigDecimal1.compareTo(bigDecimal2);
  • 3.转换和舍入:
  • 转换为其他数据类型:intValue(), longValue(), doubleValue()
  • 转换为字符串:toString()
  • 设置小数位数和舍入方式:setScale(int newScale, RoundingMode roundingMode)
int intValue = bigDecimal1.intValue();
long longValue = bigDecimal1.longValue();
double doubleValue = bigDecimal1.doubleValue();
String stringValue = bigDecimal1.toString();
BigDecimal scaled = bigDecimal1.setScale(2, RoundingMode.HALF_UP);
  • 4.其他常用方法:
  • 比较大小:max(BigDecimal val), min(BigDecimal val)
  • 取整:stripTrailingZeros()
  • 判断是否为整数或负数:isInteger(), signum()
BigDecimal max = bigDecimal1.max(bigDecimal2);
BigDecimal min = bigDecimal1.min(bigDecimal2);
BigDecimal noTrailingZeros = bigDecimal1.stripTrailingZeros();
boolean isInteger = bigDecimal1.isInteger();
int signum = bigDecimal1.signum();


相关文章
|
API
JDK8函数式接口之BiConsumer
JDK8函数式接口之BiConsumer
301 0
|
分布式计算 Java 关系型数据库
Linux中jar包启动和jar包后台运行的实现方式
Linux中jar包启动和jar包后台运行的实现方式
2138 0
|
4月前
|
XML 人工智能 监控
SpringBoot实战:七种统计方法耗时的实现方式
在Spring Boot开发中,统计方法执行时间是性能优化的重要手段。本文介绍了七种实现方法耗时统计的技巧,包括手动使用StopWatch、AOP全局监控、自定义注解+切面、拦截器、Filter、Actuator+Micrometer集成以及事件监听等方式。每种方法适用于不同场景,开发者可根据需求选择合适的方案,从而更高效地定位性能瓶颈并提升系统响应速度。
773 5
|
2月前
|
安全 Linux iOS开发
Tenable Nessus 10.10 (macOS, Linux, Windows) - 漏洞评估解决方案
Tenable Nessus 10.10 (macOS, Linux, Windows) - 漏洞评估解决方案
315 0
Tenable Nessus 10.10 (macOS, Linux, Windows) - 漏洞评估解决方案
|
XML 前端开发 Java
怎样将MultipartFile和File互转
该文介绍了如何在Java开发中优雅地转换MultipartFile和File。MultipartFile是Spring框架用于接收上传文件的类,而File是操作系统文件的代表。文章提供了三种将MultipartFile转换为File的方法:使用`transferTo`方法、FileOutputStream和Java NIO。另外,还介绍了在测试场景下将File转换为MultipartFile,通过MockMultipartFile实现。
1437 1
|
安全 Java 数据处理
Java Consumer 接口详解
在Java编程中,有时需要对某个对象进行操作或者处理,而这个操作可能是非常灵活的。Java 8引入了函数式编程的特性,其中的一个重要接口就是Consumer接口。本文将详细介绍Consumer接口,包括它的定义、用法以及示例。
627 0
|
Java API Apache
怎么在在 Java 中对List进行分区
本文介绍了如何将列表拆分为给定大小的子列表。尽管标准Java集合API未直接支持此功能,但Guava和Apache Commons Collections提供了相关API。
387 1
|
监控 Java Unix
java函数式接口的三种实现方式
java函数式接口的三种实现方式
303 0
|
缓存 Java 数据库
kswapd0 进程CPU占用过高
kswapd0 进程CPU占用过高
1101 2
kswapd0 进程CPU占用过高