BigDecimal 舍入模式(Rounding mode)中的ROUND_UNNECESSARY

简介: BigDecimal 舍入模式(Rounding mode)中的ROUND_UNNECESSARY

BigDecimal.ROUND_UNNECESSARY

翻译:舍入模式可以断言所请求的操作具有准确的结果,因此不需要舍入。如果在产生不精确结果的操作上指定了这种舍入模式,则会引发ArithmeticException。

解释:计算结果必须是精确的,不需要舍入的,否则抛出 ArithmeticException。

import java.math.BigDecimal;
public class BigDecimalTest {
  public static void main(String[] args) {
    BigDecimal bigDecimal1 = new BigDecimal("0.12345");
    BigDecimal bigDecimal2 = new BigDecimal("-0.12345");
                // 正确        
    System.out.println(bigDecimal1.setScale(6, BigDecimal.ROUND_UNNECESSARY));
               // 错误,需要舍入,结果不明确,抛出异常ArithmeticException
    System.out.println(bigDecimal2.setScale(3, BigDecimal.ROUND_UNNECESSARY));
  }
}

本篇文章如有帮助到您,请给「翎野君」点个赞,感谢您的支持。

目录
相关文章
|
Java
Java中BigDecimal 类的创建对象方法,介绍,常用方法以及8种舍入模式
Java中BigDecimal 类的创建对象方法,介绍,常用方法以及8种舍入模式
1066 0
Java中BigDecimal 类的创建对象方法,介绍,常用方法以及8种舍入模式
|
Java
Java BigDecimal 的舍入模式(RoundingMode)详解
Java BigDecimal 的舍入模式(RoundingMode)详解
827 0
大厂工程师如何实践BigDecimal的8种舍入模式
大厂工程师如何实践BigDecimal的8种舍入模式
230 0
|
算法 Java
BigDecimal的精度舍入模式详解
BigDecimal舍入模式介绍:   舍入模式在java.math.RoundingMode 里面: RoundingMode.CEILING :向正无限大方向舍入的舍入模式。如果结果为正,则舍入行为类似于 RoundingMode.UP;如果结果为负,则舍入行为类似于 RoundingMode.DOWN。
2128 0
|
Java
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
402 0
|
Java
Java开发篇- 从BigDecimal的divide的异常说起
在过去做项目的某一天中,突然有小伙伴说两个BigDecimal的数据相除(divide)报错了,觉得不可能,然后问他是怎么编写的,他说很简单呀,就是new了2个BigDecimal,然后相除的结果赋值给另外一个BigDecimal对象。听起来觉得没有问题,正常来说,2个Integer(int),2个Double(double)都不会报错,然后问是什么异常,说是一个很奇怪的异常
751 0
|
存储 Java
你知道Java中的BigInteger类和BigDecimal类吗?
你知道Java中的BigInteger类和BigDecimal类吗?
355 0
【Java】Math、System、RunTime、BigDecimal类常用方法
【Java】Math、System、RunTime、BigDecimal类常用方法
166 0
|
存储 Java API
从零开始学习 Java:简单易懂的入门指南之Objects、BigInteger、BigDecimal(十四)
从零开始学习 Java:简单易懂的入门指南之Objects、BigInteger、BigDecimal(十四)
|
Java
Java 中大数的处理方案BigInteger和BigDecimal类的使用
Java 中大数的处理方案BigInteger和BigDecimal类的使用
298 0