`
ahuzl007
  • 浏览: 25723 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

JAVA BigDecimal精确计算的世界里没有四舍五入。。。

    博客分类:
  • java
 
阅读更多

对于BigDecimal来说,四舍六入是肯定的,没什么好说的,

但是如果需要做处理的小数位刚好是5,那就看下面的例子吧

 

import java.math.BigDecimal;


public class TestBigDecimal {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ

		System.out.println("33.375");
		System.out.println("ROUND_UP : " + (new BigDecimal("33.375")).setScale(2, BigDecimal.ROUND_UP));
		System.out.println("ROUND_DOWN : " + (new BigDecimal("33.375")).setScale(2, BigDecimal.ROUND_DOWN));

		System.out.println("ROUND_HALF_UP : " + (new BigDecimal("33.375")).setScale(2, BigDecimal.ROUND_HALF_UP));
		System.out.println("ROUND_HALF_DOWN : " + (new BigDecimal("33.375")).setScale(2, BigDecimal.ROUND_HALF_DOWN));
		System.out.println("ROUND_HALF_EVEN 奇数: " + (new BigDecimal("33.375")).setScale(2, BigDecimal.ROUND_HALF_EVEN));
		System.out.println("ROUND_HALF_EVEN 偶数: " + (new BigDecimal("33.385")).setScale(2, BigDecimal.ROUND_HALF_EVEN));
		System.out.println("--------------------------------");
		System.out.println("ROUND_CEILING 正値 : " + (new BigDecimal("+33.375")).setScale(2, BigDecimal.ROUND_CEILING));
		System.out.println("ROUND_FLOOR 正値: " + (new BigDecimal("+33.375")).setScale(2, BigDecimal.ROUND_FLOOR));
		System.out.println("ROUND_CEILING 负値: " + (new BigDecimal("-33.375")).setScale(2, BigDecimal.ROUND_CEILING));
		System.out.println("ROUND_FLOOR 负値: " + (new BigDecimal("-33.375")).setScale(2, BigDecimal.ROUND_FLOOR));
	}
}

 结果:

 

写道
33.375
ROUND_UP : 33.38
ROUND_DOWN : 33.37
ROUND_HALF_UP : 33.38
ROUND_HALF_DOWN : 33.37
ROUND_HALF_EVEN 奇数: 33.38
ROUND_HALF_EVEN 偶数: 33.38
--------------------------------
ROUND_CEILING 正値 : 33.38
ROUND_FLOOR 正値: 33.37
ROUND_CEILING : -33.37
ROUND_FLOOR : -33.38

 

分享到:
评论

相关推荐

    java 四舍五入 需要的朋友看看

    在Java编程语言中,四舍五入是一种常见的数学操作,用于处理浮点数或小数,使其更加符合实际应用需求。本文将详细解析如何在Java中实现四舍五入,并探讨不同方法的适用场景。 ### Java四舍五入的基础概念 四舍五入...

    四舍五入_四舍五入问题_源码

    在这个场景中,标题"四舍五入_四舍五入问题_源码"暗示我们将讨论如何在编程中实现四舍五入操作,特别是与计算苹果单价和数量相关的总价问题。描述提到“输入苹果的单价及购买的数量,计算总价,分别显示总价的总价...

    java BigDecimal操作

    在Java编程语言中,BigDecimal类是用于处理高精度、大范围浮点数的工具,它在需要精确计算的场景下非常关键。BigDecimal提供了避免浮点数运算中的精度损失的方法,适用于金融、会计等对精度有严格要求的领域。这篇...

    运用BigDecimal精确计算

    舍入模式决定了在计算过程中如何处理超出精度的数字,例如`RoundingMode.HALF_UP`(四舍五入)、`RoundingMode.DOWN`(向下取整)等。 4. 比较操作: `BigDecimal`提供了`compareTo()`方法用于比较两个`BigDecimal...

    java中BigDecimal的操作方法

    在13.5500除以5时,实际计算结果是13.5500000...,在四舍五入到第1位时,由于5之后的位数不为0,所以进位得到13.6。 BigDecimal还提供了其他一些方法,如`compareTo()`用于比较两个BigDecimal对象的大小,`scale()`...

    BigDecimal加减乘除计算

    这里 `20` 表示保留20位小数,`ROUND_HALF_UP` 是舍入模式,表示四舍五入。 6. 舍入模式(RoundingMode): BigDecimal 支持八种舍入模式,如: - ROUND_UP:向上舍入,远离零,始终增加数字。 - ROUND_DOWN:...

    关于java的四舍五入问题

    2. **`BigDecimal`类**: `BigDecimal`是Java中用于处理精确浮点数的类,它提供了丰富的四舍五入方法,如`round(RoundingMode mode)`。`RoundingMode`枚举定义了多种舍入策略,如`UP`(向远离零的方向取整)、`DOWN`...

    java代码-BigDecimal 四舍五入保留2位小数. 金额从单位分转成单位元

    本示例代码主要关注如何使用BigDecimal进行四舍五入操作,以保留两位小数,并将金额从单位分转换为单位元。下面将详细解释相关知识点。 1. BigDecimal类: BigDecimal是Java提供的一个大数类,它提供了对任意精度...

    BigDecimal的计算

    否则采用四舍五入的方式。这里使用了 `setScale` 方法来控制结果的精度和舍入方式。 接下来是几个具体的计算例子: - **预算资本支付成本** (`budgetCapitalPayCost`):首先获取所有预算资本支付成本 (`...

    js四舍五入-保留两位小数

    在Java中,可以使用`BigDecimal`类来实现四舍五入并保留两位小数的功能。`BigDecimal`类提供了非常强大的高精度算术运算能力,非常适合处理财务计算等场景。 **示例代码**: ```java import java.math.BigDecimal;...

    java-BigInteger-BigDecimal类源码

    4. **舍入模式**:在执行除法运算时,`BigDecimal`提供了多种舍入模式,如`ROUND_UP`, `ROUND_DOWN`, `ROUND_HALF_EVEN`等,以决定结果如何处理超出精度的数字。 5. **不可变性**:同样,`BigDecimal`对象也是不可...

    金额的大小转换及小数的四舍五入处理

    在Java中,`BigDecimal`类是用来处理大数值和高精度计算的,同样适用于四舍五入: ```java BigDecimal bd = new BigDecimal("12345.6789"); BigDecimal rounded = bd.setScale(2, RoundingMode.HALF_UP); System....

    Java中BigDecimal的加减乘除、比较大小与使用注意事项

    在Java编程中,当涉及到需要精确数值计算的场景时,我们通常会使用`BigDecimal`类。这是因为`float`和`double`类型虽然适用于科学计算和工程计算,但它们基于二进制浮点运算,不能保证完全精确的结果。而`BigDecimal...

    Java实现的浮点类的精确计算

    总结一下,Java中的浮点数精确计算主要是通过`java.math.BigDecimal`类来实现的,而"Java实现的浮点类的精确计算"则可能是一个自定义工具类,封装了`BigDecimal`的操作,以提供方便、准确的浮点数计算服务。...

    sishewuru.rar_四舍五入

    标题 "sishewuru.rar_四舍五入" 暗示了我们关注的主题是关于数值计算中的四舍五入操作。在这个主题下,我们将深入探讨四舍五入的定义、用途、方法以及在编程中实现四舍五入的常见算法。 四舍五入是一种在数学和...

    关于java中BigDecimal的简介(csdn)————程序.pdf

    Java中的`BigDecimal`类是用于表示和操作高精度浮点数的重要工具,尤其适用于需要进行精确计算的场景,如财务和货币计算。由于基本数据类型`double`和`float`在进行大数值或高精度计算时可能会导致精度丢失,因此`...

    MyEditTextApplication输入框BigDecimal计算价格

    BigDecimal是Java提供的一个大数类,它可以用来进行精确的浮点数运算,避免了传统浮点数运算中可能出现的精度损失问题。在金融或会计系统中,对数据的精度要求很高,BigDecimal就成为首选的数据类型。 在...

    Java Bigdecimal使用原理详解

    Java Bigdecimal是Java语言中用于精确计算的类,它可以完善float和double类无法进行精确计算的缺憾。BigDecimal类位于java.math类包下,提供了多种构造函数和方法来实现精确计算。 首先,我们来看下如何构造一个...

    BigDecimal开n次方根

    复杂的BigDecimal计算,需要开方的式子,可输入结果精确位数

    java 四舍五入保留小数的实现方法

    在Java编程语言中,有时我们需要对浮点数进行四舍五入操作,以便在特定场景下得到精确的小数值。以下是一些常用的Java四舍五入保留小数的实现方法: ### 方法一:使用`BigDecimal` `BigDecimal`是Java中处理高精度...

Global site tag (gtag.js) - Google Analytics