`

java BigDecimal类精确位数

    博客分类:
  • java
阅读更多

.

String myMoney = "100.0128";

BigDecimal money= new BigDecimal(myMoney);

//设置精度,以及舍入规则
money= money.setScale(2, BigDecimal.ROUND_HALF_UP);

System.out.println(money);

//100.01

2. double myMoney = 100.0128;

myMoney = Math.round(myMoney * 100) / (double) 100 ;

BigDecimal money= new BigDecimal(myMoney);

System.out.println(money); //后面则有很多的小数

//为了保证小数位数为2位

BigDecimal money= new BigDecimal(Double.toString(myMoney));

System.out.println(money); //小数位数则为2位


/*
* 创建日期 2004-10-14
*
* 如果需要精确计算,非要用String来够造BigDecimal不可
*/
package com.lims.actions.testqc.comm;

/**
* @author Jstar
*
*
* 窗口 > 首选项 >Java> 代码生成 > 代码和注释
*/
import java.math.BigDecimal;

/**
* 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精
* 确的浮点数运算,包括加减乘除和四舍五入。
*/

public class Arith {

//默认除法运算精度

private static final int DEF_DIV_SCALE = 10;

//这个类不能实例化

private Arith() {

}

/**

* 提供精确的加法运算。

* @param v1 被加数

* @param v2 加数

* @return 两个参数的和

*/

public static double add(double v1, double v2) {

BigDecimal b1 = new BigDecimal(Double.toString(v1));

BigDecimal b2 = new BigDecimal(Double.toString(v2));

return b1.add(b2).doubleValue();

}

/**
* 提供精确的减法运算。
* @param v1 被减数
* @param v2 减数
* @return 两个参数的差
*/

public static double sub(double v1, double v2) {

BigDecimal b1 = new BigDecimal(Double.toString(v1));

BigDecimal b2 = new BigDecimal(Double.toString(v2));

return b1.subtract(b2).doubleValue();

}

/**

* 提供精确的乘法运算。

* @param v1 被乘数

* @param v2 乘数

* @return 两个参数的积

*/

public static double mul(double v1, double v2) {

BigDecimal b1 = new BigDecimal(Double.toString(v1));

BigDecimal b2 = new BigDecimal(Double.toString(v2));

return b1.multiply(b2).doubleValue();

}

/*

* bizSta 被除数

* totalQue 除数

* isMu 被乘数

* BigDecimal.ROUND_HALF_UP 表示小数精确的位置

*/

BigDecimal totalQue = new BigDecimal(couAccessData

.getTotalQue());

BigDecimal bizSta = new BigDecimal(couAccessData.getBizSta());

BigDecimal isMu = new BigDecimal(100);

bizSta.doubleValue() == 0. ? "0.00":

(bizSta.divide(totalQue, 4,

BigDecimal.ROUND_HALF_UP)).multiply(

isMu).setScale(2,

BigDecimal.ROUND_HALF_UP)

分享到:
评论

相关推荐

    java BigDecimal操作

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

    java-BigInteger-BigDecimal类源码

    在Java编程语言中,`BigInteger`和`BigDecimal`是两个重要的类,它们分别用于处理大整数和高精度浮点数。这两个类位于`java.math`包下,为开发者提供了超越基本数据类型(如int、long和double)的计算能力。在深入...

    java中BigDecimal的操作方法

    在Java编程语言中,BigDecimal是用于处理高精度和可配置精度的十进制数的类。在进行商业计算时,由于浮点数(double和float)存在精度问题,不能保证准确的结果,因此通常推荐使用BigDecimal来确保计算的精确性。本文...

    BigDecimal类

    创建一个超过 16 有效位数的对象时,运用 BigDecimal(String) 才可避免丢失数字的精确度。 BigDecimal 和格式化 BigDecimal 类可以与 NumberFormat 类结合使用,用于格式化货币值、百分值等超过 16 位有效数字的...

    Java中BigDecimal类的简单用法

    总之,Java中的BigDecimal类是处理精确数值计算的重要工具,尤其是在金融、会计等对精度要求极高的领域。通过使用其提供的各种构造方法和运算方法,开发者可以有效地控制计算过程中的精度,确保计算结果的正确性。...

    BigDecimal工具类.docx

    BigDecimal工具类是Java中用于高精确处理常用数学运算的工具类。该工具类提供了多种精确的数学运算方法,包括加法、减法、乘法和除法等。 在BigDecimal工具类中,我们可以看到多个重载的方法,例如add方法和sub方法...

    Java BigDecimal类用法详解

    Java中的`BigDecimal`类是用来表示任意精度的十进制数,尤其适合于需要精确计算的商业和财务场景。它的核心概念包括非标度值(unscaled value)和标度(scale),非标度值是一个任意精度的整数,标度则是小数点后的...

    BigDecimal开n次方根

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

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

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

    Java BigDecimal使用及基本运算(推荐)

    BigDecimal 类在 Java 中是用于处理高精度和大数值计算的,它确保了在计算过程中不会因为浮点数的精度问题而导致结果错误。由于 double 和 float 类型在处理大数或需要绝对精确计算的场景下存在精度损失,因此 ...

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

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

    Java中限制小数位数问题

    `BigDecimal`类提供了精确的浮点数运算能力,非常适合用于需要高精度的场景。通过调用`setScale`方法可以方便地设置小数位数,并指定四舍五入的方式。 ```java double f = 111231.5585; BigDecimal b = new ...

    Java BigDecimal类的使用和注意事项

    Java中的`BigDecimal`类是用来处理高精度和任意精度的十进制数值的,它主要用于金融或者科学计算中,需要精确的浮点数运算。在Java的`java.math`包下,`BigDecimal`提供了丰富的算术操作,确保了计算的准确性。 `...

    BigDecimal加减乘除计算

    BigDecimal 类在 Java 中被设计用来处理高精度的浮点数运算,主要应用于财务、金融等领域,因为这些场景中对精度要求非常高。BigDecimal 提供了加法(add())、减法(subtract())、乘法(multiply())和除法...

    运用BigDecimal精确计算

    为了解决这个问题,Java提供了`BigDecimal`类,用于进行精确的十进制算术运算。这篇博客将深入探讨`BigDecimal`的使用,以及如何通过它来实现精确计算。 `BigDecimal`是Java `java.math`包下的一个类,它提供了任意...

    Java保留两位小数方法大全

    **原理**:通过`BigDecimal`类提供的方法,能够精确地控制数值的精度。在本案例中,使用`setScale`方法来设置小数点后保留的位数,并指定舍入规则。 **示例代码**: ```java double f = 111231.5585; BigDecimal b ...

    bigdecimal转integer.docx

    在 Java 编程中,`BigDecimal` 和 `Integer` 是两个不同类型的数值表示。`BigDecimal` 用于处理精确的浮点数运算,适合财务或金融计算,因为它可以避免浮点数计算中的精度问题。而 `Integer` 是 Java 中的整数类型,...

    bigdecimal

    ### Java中的BigDecimal类详解 在Java编程语言中,当我们处理涉及货币、财务或者任何需要高精度计算的场景时,`BigDecimal` 类是非常重要的工具之一。本文将深入探讨 `BigDecimal` 类的基本概念、特点以及如何使用...

    Java 计算类

    Java计算类是一个专门设计用于进行基本数学运算(加、减、乘、除)以及控制数字格式(四舍五入、保留特定位数的小数)的类。该类使用了Java中的BigDecimal类来确保在处理大数字或者要求精度高的计算时,能够保持计算...

    java中BigDecimal进行加减乘除的基本用法

    在Java编程语言中,`BigDecimal` 类位于 `java.math` 包下,它提供了一种进行高精度和任意精度的十进制算术运算的方法。`BigDecimal` 是为那些需要精确数值计算的场景设计的,比如金融计算或会计应用,因为普通的 `...

Global site tag (gtag.js) - Google Analytics