`

BigDecimal(num).setScale ROUND_HALF_UP四舍五入的问题

    博客分类:
  • java
 
阅读更多

当传入的值是String类型时,四舍五入是正确的,当传入的是double类型的时候,四舍五入是有问题;

尽量使用String作为传入值,保证计算的准确性。

下面是例子:

@Test
	public void test() throws Exception {
	    double num = 176.5555;
	    System.out.println((new BigDecimal(num).setScale(3,BigDecimal.ROUND_HALF_UP)));
	}

结果是:176.555

 

@Test
	public void test() throws Exception {
		
	    String num = "176.5555";
	    System.out.println((new BigDecimal(num).setScale(3,BigDecimal.ROUND_HALF_UP)));
	}

结果是:176.556

 

 

分享到:
评论

相关推荐

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

    System.out.println("四舍五入(3.856)=" + new BigDecimal(i).setScale(0, BigDecimal.ROUND_HALF_UP)); System.out.println("保留两位小数(3.856)=" + new BigDecimal(i).setScale(2, BigDecimal.ROUND_HALF_UP))...

    BigDecimal.js.zip

    var quotient = bigNum1.divide(bigNum2, 10, BigDecimal.ROUND_HALF_UP); ``` 此外,BigDecimal.js还支持其他数学运算,如乘法、求余数、开方等。在处理复杂的数学表达式时,还可以使用链式调用: ```javascript ...

    js_bigdecimal_1_0_1.zip

    4. **舍入模式**:支持多种舍入策略,如四舍五入、向上取整、向下取整等。 5. **转换操作**:可以从字符串或其他类型转换为BigDecimal,也可以将BigDecimal转换为字符串或其他类型。 6. **幂运算**:支持大数的幂...

    BigDecimal加减乘除计算

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

    java四舍五入

    System.out.println("四舍五入取整:(2.5) = " + bd.setScale(0, BigDecimal.ROUND_HALF_UP)); ``` 上述代码可以正确地实现四舍五入取整。 Java 四舍五入方法可以通过多种方式实现,包括使用 Math 类的方法、...

    sishewuru.rar_四舍五入

    除了标准的四舍五入,还有其他的舍入策略,如向零取整(ROUND_TO_ZERO)、向上取整(ROUND_UP)和向下取整(ROUND_DOWN)。这些策略可以根据实际需求选择使用,比如在金融计算中通常会使用不偏向任何一方的舍入策略...

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

    四舍五入模式有多种,如`ROUND_UP`(向上取整)、`ROUND_DOWN`(向下取整)等,`ROUND_HALF_UP`是最常用的,即常规的四舍五入规则。 总结起来,金额的大小转换涉及到数字的格式化,确保其符合人类阅读习惯;而小数...

    bigdecimal转integer.docx

    int intValue = bigDecimal.setScale(0, BigDecimal.ROUND_HALF_UP).intValueExact(); System.out.println(intValue); // 输出:101 ``` 3. 组合使用 `setScale()` 和 `intValue()` 方法 如果 `BigDecimal` ...

    double保留小数

    - `BigDecimal.ROUND_HALF_UP`:四舍五入,向“最接近的邻居”舍入,除非两者都同样接近,此时舍入远离零的方向。 - `BigDecimal.ROUND_HALF_DOWN`:五舍六入,向“最接近的邻居”舍入,除非两者都同样接近,此时...

    BigDecimal基本运算介绍

    `BigDecimal.ROUND_HALF_UP` 是最常用的四舍五入模式,当超出的小数位大于等于 0.5 时进位,否则舍去。 ### 6. 舍入模式 `BigDecimal` 提供了多种舍入模式,如: - `ROUND_UP`:始终向上舍入,即使结果小于半个...

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

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

    基于springboot+策略模式 实现简单促销

    BigDecimal result5 = num2.divide(num1,20,BigDecimal.ROUND_HALF_UP); //绝对值 BigDecimal result4 = num3.abs(); 比较大小 结果是: -1:小于; 0 :等于; 1 :大于; BigDecimal b1 = new BigDecimal("-...

    jackson使用@JsonSerialize格式化BigDecimal解决.00不显示问题

    这里的`setScale(2, BigDecimal.ROUND_HALF_DOWN)`方法用于设置小数位数为2,并采用四舍五入的策略。 #### 2. 应用自定义序列化器 接下来,我们需要在返回给前端的实体类中的BigDecimal属性上添加`@JsonSerialize`...

    BigDecimal加减乘除计算.pdf

    例如,`num2.divide(num1, 20, BigDecimal.ROUND_HALF_UP)`表示`num2`除以`num1`,保留20位小数,采用半上舍入(ROUND_HALF_UP)策略。这个舍入模式意味着如果除法结果的第21位大于等于5,则第20位加1。 5. **...

    javascript版BigDecimal类库

    4. **舍入模式**:提供了多种舍入策略,如`ROUND_UP`、`ROUND_DOWN`、`ROUND_HALF_UP`等,以适应不同场景下的精度需求。 5. **格式化输出**:可以将`BigDecimal`对象转换为字符串,支持定制小数位数、千位分隔符、...

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

    在上面的例子中,我们使用`BigDecimal`类创建了一个表示123.4567的`BigDecimal`对象,然后调用`setScale()`方法设置保留两位小数,并使用`RoundingMode.HALF_EVEN`指定四舍五入的规则。 ##### 2. 使用 `...

    java保留两位小数问题

    这里需要注意的是,`setScale`方法的第一个参数表示保留的小数位数,第二个参数`BigDecimal.ROUND_HALF_UP`表示采用四舍五入的方式。 ##### 使用`DecimalFormat` `DecimalFormat`是`java.text`包下的一个类,用于...

    关于java的四舍五入问题

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

    rubygem-bigdecimal-1.2.0-39.el7_9.x86_64.rpm

    Centos7 el7.x86_64 官方离线安装包,安装指令为 sudo rpm -ivh rubygem-bigdecimal-1.2.0-39.el7_9.x86_64.rpm

    bigdecimal

    2. **舍入模式**: `BigDecimal.ROUND_HALF_UP` 表示四舍五入模式,这是最常见的舍入方式。`BigDecimal` 还提供了其他多种舍入模式,如 `ROUND_DOWN`、`ROUND_UP` 等,可以根据具体需求选择。 3. **异常处理**: 当 `...

Global site tag (gtag.js) - Google Analytics